From 2642d51e1e9230720a74d8c76bc7b301e69881bf Mon Sep 17 00:00:00 2001 From: Jon Leech Date: Fri, 6 Jun 2025 13:47:45 +0100 Subject: [PATCH] Update for Vulkan-Docs 1.4.317 --- include/vk_video/vulkan_video_codec_vp9std.h | 151 + .../vulkan_video_codec_vp9std_decode.h | 68 + include/vulkan/vulkan.cppm | 189 +- include/vulkan/vulkan.hpp | 211 +- include/vulkan/vulkan_core.h | 566 +- include/vulkan/vulkan_enums.hpp | 222 +- .../vulkan/vulkan_extension_inspection.hpp | 28 +- include/vulkan/vulkan_format_traits.hpp | 27 +- include/vulkan/vulkan_funcs.hpp | 470 ++ include/vulkan/vulkan_handles.hpp | 420 ++ include/vulkan/vulkan_hash.hpp | 560 ++ include/vulkan/vulkan_raii.hpp | 490 ++ include/vulkan/vulkan_shared.hpp | 18 + include/vulkan/vulkan_static_assertions.hpp | 182 + include/vulkan/vulkan_structs.hpp | 4966 +++++++++++++++++ include/vulkan/vulkan_to_string.hpp | 198 +- registry/base_generator.py | 16 +- registry/reg.py | 12 +- registry/validusage.json | 3534 +++++++++--- registry/video.xml | 191 +- registry/vk.xml | 690 ++- registry/vkconventions.py | 2 + registry/vulkan_object.py | 9 + 23 files changed, 12386 insertions(+), 834 deletions(-) create mode 100644 include/vk_video/vulkan_video_codec_vp9std.h create mode 100644 include/vk_video/vulkan_video_codec_vp9std_decode.h diff --git a/include/vk_video/vulkan_video_codec_vp9std.h b/include/vk_video/vulkan_video_codec_vp9std.h new file mode 100644 index 0000000..61743cd --- /dev/null +++ b/include/vk_video/vulkan_video_codec_vp9std.h @@ -0,0 +1,151 @@ +#ifndef VULKAN_VIDEO_CODEC_VP9STD_H_ +#define VULKAN_VIDEO_CODEC_VP9STD_H_ 1 + +/* +** Copyright 2015-2025 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// vulkan_video_codec_vp9std is a preprocessor guard. Do not pass it to API calls. +#define vulkan_video_codec_vp9std 1 +#include "vulkan_video_codecs_common.h" +#define STD_VIDEO_VP9_NUM_REF_FRAMES 8 +#define STD_VIDEO_VP9_REFS_PER_FRAME 3 +#define STD_VIDEO_VP9_MAX_REF_FRAMES 4 +#define STD_VIDEO_VP9_LOOP_FILTER_ADJUSTMENTS 2 +#define STD_VIDEO_VP9_MAX_SEGMENTS 8 +#define STD_VIDEO_VP9_SEG_LVL_MAX 4 +#define STD_VIDEO_VP9_MAX_SEGMENTATION_TREE_PROBS 7 +#define STD_VIDEO_VP9_MAX_SEGMENTATION_PRED_PROB 3 + +typedef enum StdVideoVP9Profile { + STD_VIDEO_VP9_PROFILE_0 = 0, + STD_VIDEO_VP9_PROFILE_1 = 1, + STD_VIDEO_VP9_PROFILE_2 = 2, + STD_VIDEO_VP9_PROFILE_3 = 3, + STD_VIDEO_VP9_PROFILE_INVALID = 0x7FFFFFFF, + STD_VIDEO_VP9_PROFILE_MAX_ENUM = 0x7FFFFFFF +} StdVideoVP9Profile; + +typedef enum StdVideoVP9Level { + STD_VIDEO_VP9_LEVEL_1_0 = 0, + STD_VIDEO_VP9_LEVEL_1_1 = 1, + STD_VIDEO_VP9_LEVEL_2_0 = 2, + STD_VIDEO_VP9_LEVEL_2_1 = 3, + STD_VIDEO_VP9_LEVEL_3_0 = 4, + STD_VIDEO_VP9_LEVEL_3_1 = 5, + STD_VIDEO_VP9_LEVEL_4_0 = 6, + STD_VIDEO_VP9_LEVEL_4_1 = 7, + STD_VIDEO_VP9_LEVEL_5_0 = 8, + STD_VIDEO_VP9_LEVEL_5_1 = 9, + STD_VIDEO_VP9_LEVEL_5_2 = 10, + STD_VIDEO_VP9_LEVEL_6_0 = 11, + STD_VIDEO_VP9_LEVEL_6_1 = 12, + STD_VIDEO_VP9_LEVEL_6_2 = 13, + STD_VIDEO_VP9_LEVEL_INVALID = 0x7FFFFFFF, + STD_VIDEO_VP9_LEVEL_MAX_ENUM = 0x7FFFFFFF +} StdVideoVP9Level; + +typedef enum StdVideoVP9FrameType { + STD_VIDEO_VP9_FRAME_TYPE_KEY = 0, + STD_VIDEO_VP9_FRAME_TYPE_NON_KEY = 1, + STD_VIDEO_VP9_FRAME_TYPE_INVALID = 0x7FFFFFFF, + STD_VIDEO_VP9_FRAME_TYPE_MAX_ENUM = 0x7FFFFFFF +} StdVideoVP9FrameType; + +typedef enum StdVideoVP9ReferenceName { + STD_VIDEO_VP9_REFERENCE_NAME_INTRA_FRAME = 0, + STD_VIDEO_VP9_REFERENCE_NAME_LAST_FRAME = 1, + STD_VIDEO_VP9_REFERENCE_NAME_GOLDEN_FRAME = 2, + STD_VIDEO_VP9_REFERENCE_NAME_ALTREF_FRAME = 3, + STD_VIDEO_VP9_REFERENCE_NAME_INVALID = 0x7FFFFFFF, + STD_VIDEO_VP9_REFERENCE_NAME_MAX_ENUM = 0x7FFFFFFF +} StdVideoVP9ReferenceName; + +typedef enum StdVideoVP9InterpolationFilter { + STD_VIDEO_VP9_INTERPOLATION_FILTER_EIGHTTAP = 0, + STD_VIDEO_VP9_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH = 1, + STD_VIDEO_VP9_INTERPOLATION_FILTER_EIGHTTAP_SHARP = 2, + STD_VIDEO_VP9_INTERPOLATION_FILTER_BILINEAR = 3, + STD_VIDEO_VP9_INTERPOLATION_FILTER_SWITCHABLE = 4, + STD_VIDEO_VP9_INTERPOLATION_FILTER_INVALID = 0x7FFFFFFF, + STD_VIDEO_VP9_INTERPOLATION_FILTER_MAX_ENUM = 0x7FFFFFFF +} StdVideoVP9InterpolationFilter; + +typedef enum StdVideoVP9ColorSpace { + STD_VIDEO_VP9_COLOR_SPACE_UNKNOWN = 0, + STD_VIDEO_VP9_COLOR_SPACE_BT_601 = 1, + STD_VIDEO_VP9_COLOR_SPACE_BT_709 = 2, + STD_VIDEO_VP9_COLOR_SPACE_SMPTE_170 = 3, + STD_VIDEO_VP9_COLOR_SPACE_SMPTE_240 = 4, + STD_VIDEO_VP9_COLOR_SPACE_BT_2020 = 5, + STD_VIDEO_VP9_COLOR_SPACE_RESERVED = 6, + STD_VIDEO_VP9_COLOR_SPACE_RGB = 7, + STD_VIDEO_VP9_COLOR_SPACE_INVALID = 0x7FFFFFFF, + STD_VIDEO_VP9_COLOR_SPACE_MAX_ENUM = 0x7FFFFFFF +} StdVideoVP9ColorSpace; +typedef struct StdVideoVP9ColorConfigFlags { + uint32_t color_range : 1; + uint32_t reserved : 31; +} StdVideoVP9ColorConfigFlags; + +typedef struct StdVideoVP9ColorConfig { + StdVideoVP9ColorConfigFlags flags; + uint8_t BitDepth; + uint8_t subsampling_x; + uint8_t subsampling_y; + uint8_t reserved1; + StdVideoVP9ColorSpace color_space; +} StdVideoVP9ColorConfig; + +typedef struct StdVideoVP9LoopFilterFlags { + uint32_t loop_filter_delta_enabled : 1; + uint32_t loop_filter_delta_update : 1; + uint32_t reserved : 30; +} StdVideoVP9LoopFilterFlags; + +typedef struct StdVideoVP9LoopFilter { + StdVideoVP9LoopFilterFlags flags; + uint8_t loop_filter_level; + uint8_t loop_filter_sharpness; + uint8_t update_ref_delta; + int8_t loop_filter_ref_deltas[STD_VIDEO_VP9_MAX_REF_FRAMES]; + uint8_t update_mode_delta; + int8_t loop_filter_mode_deltas[STD_VIDEO_VP9_LOOP_FILTER_ADJUSTMENTS]; +} StdVideoVP9LoopFilter; + +typedef struct StdVideoVP9SegmentationFlags { + uint32_t segmentation_update_map : 1; + uint32_t segmentation_temporal_update : 1; + uint32_t segmentation_update_data : 1; + uint32_t segmentation_abs_or_delta_update : 1; + uint32_t reserved : 28; +} StdVideoVP9SegmentationFlags; + +typedef struct StdVideoVP9Segmentation { + StdVideoVP9SegmentationFlags flags; + uint8_t segmentation_tree_probs[STD_VIDEO_VP9_MAX_SEGMENTATION_TREE_PROBS]; + uint8_t segmentation_pred_prob[STD_VIDEO_VP9_MAX_SEGMENTATION_PRED_PROB]; + uint8_t FeatureEnabled[STD_VIDEO_VP9_MAX_SEGMENTS]; + int16_t FeatureData[STD_VIDEO_VP9_MAX_SEGMENTS][STD_VIDEO_VP9_SEG_LVL_MAX]; +} StdVideoVP9Segmentation; + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/vk_video/vulkan_video_codec_vp9std_decode.h b/include/vk_video/vulkan_video_codec_vp9std_decode.h new file mode 100644 index 0000000..42b9bd3 --- /dev/null +++ b/include/vk_video/vulkan_video_codec_vp9std_decode.h @@ -0,0 +1,68 @@ +#ifndef VULKAN_VIDEO_CODEC_VP9STD_DECODE_H_ +#define VULKAN_VIDEO_CODEC_VP9STD_DECODE_H_ 1 + +/* +** Copyright 2015-2025 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// vulkan_video_codec_vp9std_decode is a preprocessor guard. Do not pass it to API calls. +#define vulkan_video_codec_vp9std_decode 1 +#include "vulkan_video_codec_vp9std.h" + +#define VK_STD_VULKAN_VIDEO_CODEC_VP9_DECODE_API_VERSION_1_0_0 VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +#define VK_STD_VULKAN_VIDEO_CODEC_VP9_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_VP9_DECODE_API_VERSION_1_0_0 +#define VK_STD_VULKAN_VIDEO_CODEC_VP9_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_vp9_decode" +typedef struct StdVideoDecodeVP9PictureInfoFlags { + uint32_t error_resilient_mode : 1; + uint32_t intra_only : 1; + uint32_t allow_high_precision_mv : 1; + uint32_t refresh_frame_context : 1; + uint32_t frame_parallel_decoding_mode : 1; + uint32_t segmentation_enabled : 1; + uint32_t show_frame : 1; + uint32_t UsePrevFrameMvs : 1; + uint32_t reserved : 24; +} StdVideoDecodeVP9PictureInfoFlags; + +typedef struct StdVideoDecodeVP9PictureInfo { + StdVideoDecodeVP9PictureInfoFlags flags; + StdVideoVP9Profile profile; + StdVideoVP9FrameType frame_type; + uint8_t frame_context_idx; + uint8_t reset_frame_context; + uint8_t refresh_frame_flags; + uint8_t ref_frame_sign_bias_mask; + StdVideoVP9InterpolationFilter interpolation_filter; + uint8_t base_q_idx; + int8_t delta_q_y_dc; + int8_t delta_q_uv_dc; + int8_t delta_q_uv_ac; + uint8_t tile_cols_log2; + uint8_t tile_rows_log2; + uint16_t reserved1[3]; + const StdVideoVP9ColorConfig* pColorConfig; + const StdVideoVP9LoopFilter* pLoopFilter; + const StdVideoVP9Segmentation* pSegmentation; +} StdVideoDecodeVP9PictureInfo; + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/vulkan/vulkan.cppm b/include/vulkan/vulkan.cppm index 07e0b0f..8faee38 100644 --- a/include/vulkan/vulkan.cppm +++ b/include/vulkan/vulkan.cppm @@ -151,11 +151,11 @@ using VULKAN_HPP_DEFAULT_DISPATCHER_TYPE; using VULKAN_HPP_NAMESPACE::EventCreateFlags; using VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlagBits; using VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags; + using VULKAN_HPP_NAMESPACE::QueryPoolCreateFlagBits; + using VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags; using VULKAN_HPP_NAMESPACE::QueryResultFlagBits; using VULKAN_HPP_NAMESPACE::QueryResultFlags; using VULKAN_HPP_NAMESPACE::QueryType; - using VULKAN_HPP_NAMESPACE::QueryPoolCreateFlagBits; - using VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags; using VULKAN_HPP_NAMESPACE::BufferCreateFlagBits; using VULKAN_HPP_NAMESPACE::BufferCreateFlags; using VULKAN_HPP_NAMESPACE::BufferUsageFlagBits; @@ -859,6 +859,15 @@ using VULKAN_HPP_DEFAULT_DISPATCHER_TYPE; using VULKAN_HPP_NAMESPACE::DirectDriverLoadingFlagBitsLUNARG; using VULKAN_HPP_NAMESPACE::DirectDriverLoadingFlagsLUNARG; + //=== VK_ARM_tensors === + using VULKAN_HPP_NAMESPACE::TensorCreateFlagBitsARM; + using VULKAN_HPP_NAMESPACE::TensorCreateFlagsARM; + using VULKAN_HPP_NAMESPACE::TensorViewCreateFlagBitsARM; + using VULKAN_HPP_NAMESPACE::TensorViewCreateFlagsARM; + using VULKAN_HPP_NAMESPACE::TensorUsageFlagBitsARM; + using VULKAN_HPP_NAMESPACE::TensorUsageFlagsARM; + using VULKAN_HPP_NAMESPACE::TensorTilingARM; + //=== VK_NV_optical_flow === using VULKAN_HPP_NAMESPACE::OpticalFlowUsageFlagBitsNV; using VULKAN_HPP_NAMESPACE::OpticalFlowUsageFlagsNV; @@ -963,6 +972,9 @@ using VULKAN_HPP_DEFAULT_DISPATCHER_TYPE; //=== VK_EXT_depth_clamp_control === using VULKAN_HPP_NAMESPACE::DepthClampModeEXT; + //=== VK_KHR_maintenance9 === + using VULKAN_HPP_NAMESPACE::DefaultVertexAttributeValueKHR; + //========================= //=== Index Type Traits === //========================= @@ -2462,6 +2474,10 @@ using VULKAN_HPP_DEFAULT_DISPATCHER_TYPE; using VULKAN_HPP_NAMESPACE::LUNARGDirectDriverLoadingExtensionName; using VULKAN_HPP_NAMESPACE::LUNARGDirectDriverLoadingSpecVersion; + //=== VK_ARM_tensors === + using VULKAN_HPP_NAMESPACE::ARMTensorsExtensionName; + using VULKAN_HPP_NAMESPACE::ARMTensorsSpecVersion; + //=== VK_EXT_shader_module_identifier === using VULKAN_HPP_NAMESPACE::MaxShaderModuleIdentifierSizeEXT; using VULKAN_HPP_NAMESPACE::EXTShaderModuleIdentifierExtensionName; @@ -2497,6 +2513,14 @@ using VULKAN_HPP_DEFAULT_DISPATCHER_TYPE; using VULKAN_HPP_NAMESPACE::AMDAntiLagExtensionName; using VULKAN_HPP_NAMESPACE::AMDAntiLagSpecVersion; + //=== VK_KHR_present_id2 === + using VULKAN_HPP_NAMESPACE::KHRPresentId2ExtensionName; + using VULKAN_HPP_NAMESPACE::KHRPresentId2SpecVersion; + + //=== VK_KHR_present_wait2 === + using VULKAN_HPP_NAMESPACE::KHRPresentWait2ExtensionName; + using VULKAN_HPP_NAMESPACE::KHRPresentWait2SpecVersion; + //=== VK_KHR_ray_tracing_position_fetch === using VULKAN_HPP_NAMESPACE::KHRRayTracingPositionFetchExtensionName; using VULKAN_HPP_NAMESPACE::KHRRayTracingPositionFetchSpecVersion; @@ -2583,6 +2607,11 @@ using VULKAN_HPP_DEFAULT_DISPATCHER_TYPE; using VULKAN_HPP_NAMESPACE::KHRVideoEncodeAv1ExtensionName; using VULKAN_HPP_NAMESPACE::KHRVideoEncodeAv1SpecVersion; + //=== VK_KHR_video_decode_vp9 === + using VULKAN_HPP_NAMESPACE::MaxVideoVp9ReferencesPerFrameKHR; + using VULKAN_HPP_NAMESPACE::KHRVideoDecodeVp9ExtensionName; + using VULKAN_HPP_NAMESPACE::KHRVideoDecodeVp9SpecVersion; + //=== VK_KHR_video_maintenance1 === using VULKAN_HPP_NAMESPACE::KHRVideoMaintenance1ExtensionName; using VULKAN_HPP_NAMESPACE::KHRVideoMaintenance1SpecVersion; @@ -2619,6 +2648,10 @@ using VULKAN_HPP_DEFAULT_DISPATCHER_TYPE; using VULKAN_HPP_NAMESPACE::KHRLoadStoreOpNoneExtensionName; using VULKAN_HPP_NAMESPACE::KHRLoadStoreOpNoneSpecVersion; + //=== VK_KHR_unified_image_layouts === + using VULKAN_HPP_NAMESPACE::KHRUnifiedImageLayoutsExtensionName; + using VULKAN_HPP_NAMESPACE::KHRUnifiedImageLayoutsSpecVersion; + //=== VK_KHR_shader_float_controls2 === using VULKAN_HPP_NAMESPACE::KHRShaderFloatControls2ExtensionName; using VULKAN_HPP_NAMESPACE::KHRShaderFloatControls2SpecVersion; @@ -2697,6 +2730,10 @@ using VULKAN_HPP_DEFAULT_DISPATCHER_TYPE; using VULKAN_HPP_NAMESPACE::EXTShaderReplicatedCompositesExtensionName; using VULKAN_HPP_NAMESPACE::EXTShaderReplicatedCompositesSpecVersion; + //=== VK_EXT_shader_float8 === + using VULKAN_HPP_NAMESPACE::EXTShaderFloat8ExtensionName; + using VULKAN_HPP_NAMESPACE::EXTShaderFloat8SpecVersion; + //=== VK_NV_ray_tracing_validation === using VULKAN_HPP_NAMESPACE::NVRayTracingValidationExtensionName; using VULKAN_HPP_NAMESPACE::NVRayTracingValidationSpecVersion; @@ -2726,6 +2763,10 @@ using VULKAN_HPP_DEFAULT_DISPATCHER_TYPE; using VULKAN_HPP_NAMESPACE::EXTDepthClampControlExtensionName; using VULKAN_HPP_NAMESPACE::EXTDepthClampControlSpecVersion; + //=== VK_KHR_maintenance9 === + using VULKAN_HPP_NAMESPACE::KHRMaintenance9ExtensionName; + using VULKAN_HPP_NAMESPACE::KHRMaintenance9SpecVersion; + //=== VK_KHR_video_maintenance2 === using VULKAN_HPP_NAMESPACE::KHRVideoMaintenance2ExtensionName; using VULKAN_HPP_NAMESPACE::KHRVideoMaintenance2SpecVersion; @@ -4515,6 +4556,32 @@ using VULKAN_HPP_DEFAULT_DISPATCHER_TYPE; using VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG; using VULKAN_HPP_NAMESPACE::DirectDriverLoadingListLUNARG; + //=== VK_ARM_tensors === + using VULKAN_HPP_NAMESPACE::TensorDescriptionARM; + using VULKAN_HPP_NAMESPACE::TensorCreateInfoARM; + using VULKAN_HPP_NAMESPACE::TensorViewCreateInfoARM; + using VULKAN_HPP_NAMESPACE::TensorMemoryRequirementsInfoARM; + using VULKAN_HPP_NAMESPACE::BindTensorMemoryInfoARM; + using VULKAN_HPP_NAMESPACE::WriteDescriptorSetTensorARM; + using VULKAN_HPP_NAMESPACE::TensorFormatPropertiesARM; + using VULKAN_HPP_NAMESPACE::PhysicalDeviceTensorPropertiesARM; + using VULKAN_HPP_NAMESPACE::TensorMemoryBarrierARM; + using VULKAN_HPP_NAMESPACE::TensorDependencyInfoARM; + using VULKAN_HPP_NAMESPACE::PhysicalDeviceTensorFeaturesARM; + using VULKAN_HPP_NAMESPACE::DeviceTensorMemoryRequirementsARM; + using VULKAN_HPP_NAMESPACE::CopyTensorInfoARM; + using VULKAN_HPP_NAMESPACE::TensorCopyARM; + using VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfoTensorARM; + using VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalTensorInfoARM; + using VULKAN_HPP_NAMESPACE::ExternalTensorPropertiesARM; + using VULKAN_HPP_NAMESPACE::ExternalMemoryTensorCreateInfoARM; + using VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferTensorFeaturesARM; + using VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferTensorPropertiesARM; + using VULKAN_HPP_NAMESPACE::DescriptorGetTensorInfoARM; + using VULKAN_HPP_NAMESPACE::TensorCaptureDescriptorDataInfoARM; + using VULKAN_HPP_NAMESPACE::TensorViewCaptureDescriptorDataInfoARM; + using VULKAN_HPP_NAMESPACE::FrameBoundaryTensorsARM; + //=== VK_EXT_shader_module_identifier === using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierFeaturesEXT; using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierPropertiesEXT; @@ -4549,6 +4616,16 @@ using VULKAN_HPP_DEFAULT_DISPATCHER_TYPE; using VULKAN_HPP_NAMESPACE::AntiLagDataAMD; using VULKAN_HPP_NAMESPACE::AntiLagPresentationInfoAMD; + //=== VK_KHR_present_id2 === + using VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesPresentId2KHR; + using VULKAN_HPP_NAMESPACE::PresentId2KHR; + using VULKAN_HPP_NAMESPACE::PhysicalDevicePresentId2FeaturesKHR; + + //=== VK_KHR_present_wait2 === + using VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesPresentWait2KHR; + using VULKAN_HPP_NAMESPACE::PhysicalDevicePresentWait2FeaturesKHR; + using VULKAN_HPP_NAMESPACE::PresentWait2InfoKHR; + //=== VK_KHR_ray_tracing_position_fetch === using VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPositionFetchFeaturesKHR; @@ -4669,6 +4746,12 @@ using VULKAN_HPP_DEFAULT_DISPATCHER_TYPE; using VULKAN_HPP_NAMESPACE::VideoEncodeAV1RateControlInfoKHR; using VULKAN_HPP_NAMESPACE::VideoEncodeAV1RateControlLayerInfoKHR; + //=== VK_KHR_video_decode_vp9 === + using VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoDecodeVP9FeaturesKHR; + using VULKAN_HPP_NAMESPACE::VideoDecodeVP9ProfileInfoKHR; + using VULKAN_HPP_NAMESPACE::VideoDecodeVP9CapabilitiesKHR; + using VULKAN_HPP_NAMESPACE::VideoDecodeVP9PictureInfoKHR; + //=== VK_KHR_video_maintenance1 === using VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoMaintenance1FeaturesKHR; using VULKAN_HPP_NAMESPACE::VideoInlineQueryInfoKHR; @@ -4696,6 +4779,10 @@ using VULKAN_HPP_DEFAULT_DISPATCHER_TYPE; //=== VK_EXT_attachment_feedback_loop_dynamic_state === using VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT; + //=== VK_KHR_unified_image_layouts === + using VULKAN_HPP_NAMESPACE::PhysicalDeviceUnifiedImageLayoutsFeaturesKHR; + using VULKAN_HPP_NAMESPACE::AttachmentFeedbackLoopInfoEXT; + #if defined( VK_USE_PLATFORM_SCREEN_QNX ) //=== VK_QNX_external_memory_screen_buffer === using VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX; @@ -4770,6 +4857,9 @@ using VULKAN_HPP_DEFAULT_DISPATCHER_TYPE; //=== VK_EXT_shader_replicated_composites === using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderReplicatedCompositesFeaturesEXT; + //=== VK_EXT_shader_float8 === + using VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat8FeaturesEXT; + //=== VK_NV_ray_tracing_validation === using VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingValidationFeaturesNV; @@ -4842,6 +4932,11 @@ using VULKAN_HPP_DEFAULT_DISPATCHER_TYPE; using VULKAN_HPP_NAMESPACE::PipelineViewportDepthClampControlCreateInfoEXT; using VULKAN_HPP_NAMESPACE::DepthClampRangeEXT; + //=== VK_KHR_maintenance9 === + using VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance9FeaturesKHR; + using VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance9PropertiesKHR; + using VULKAN_HPP_NAMESPACE::QueueFamilyOwnershipTransferPropertiesKHR; + //=== VK_KHR_video_maintenance2 === using VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoMaintenance2FeaturesKHR; using VULKAN_HPP_NAMESPACE::VideoDecodeH264InlineSessionParametersInfoKHR; @@ -4997,6 +5092,10 @@ using VULKAN_HPP_DEFAULT_DISPATCHER_TYPE; //=== VK_EXT_opacity_micromap === using VULKAN_HPP_NAMESPACE::MicromapEXT; + //=== VK_ARM_tensors === + using VULKAN_HPP_NAMESPACE::TensorARM; + using VULKAN_HPP_NAMESPACE::TensorViewARM; + //=== VK_NV_optical_flow === using VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV; @@ -5106,6 +5205,10 @@ using VULKAN_HPP_DEFAULT_DISPATCHER_TYPE; //=== VK_EXT_opacity_micromap === using VULKAN_HPP_NAMESPACE::UniqueMicromapEXT; + //=== VK_ARM_tensors === + using VULKAN_HPP_NAMESPACE::UniqueTensorARM; + using VULKAN_HPP_NAMESPACE::UniqueTensorViewARM; + //=== VK_NV_optical_flow === using VULKAN_HPP_NAMESPACE::UniqueOpticalFlowSessionNV; @@ -5221,6 +5324,10 @@ using VULKAN_HPP_DEFAULT_DISPATCHER_TYPE; //=== VK_EXT_opacity_micromap === using VULKAN_HPP_NAMESPACE::SharedMicromapEXT; + //=== VK_ARM_tensors === + using VULKAN_HPP_NAMESPACE::SharedTensorARM; + using VULKAN_HPP_NAMESPACE::SharedTensorViewARM; + //=== VK_NV_optical_flow === using VULKAN_HPP_NAMESPACE::SharedOpticalFlowSessionNV; @@ -5424,6 +5531,10 @@ using VULKAN_HPP_DEFAULT_DISPATCHER_TYPE; //=== VK_EXT_opacity_micromap === using VULKAN_HPP_RAII_NAMESPACE::MicromapEXT; + //=== VK_ARM_tensors === + using VULKAN_HPP_RAII_NAMESPACE::TensorARM; + using VULKAN_HPP_RAII_NAMESPACE::TensorViewARM; + //=== VK_NV_optical_flow === using VULKAN_HPP_RAII_NAMESPACE::OpticalFlowSessionNV; @@ -5552,6 +5663,10 @@ export namespace std //=== VK_EXT_opacity_micromap === template <> struct hash; + //=== VK_ARM_tensors === + template <> struct hash; + template <> struct hash; + //=== VK_NV_optical_flow === template <> struct hash; @@ -7026,6 +7141,32 @@ export namespace std template <> struct hash; template <> struct hash; + //=== VK_ARM_tensors === + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + //=== VK_EXT_shader_module_identifier === template <> struct hash; template <> struct hash; @@ -7059,6 +7200,16 @@ export namespace std template <> struct hash; template <> struct hash; + //=== VK_KHR_present_id2 === + template <> struct hash; + template <> struct hash; + template <> struct hash; + + //=== VK_KHR_present_wait2 === + template <> struct hash; + template <> struct hash; + template <> struct hash; + //=== VK_KHR_ray_tracing_position_fetch === template <> struct hash; @@ -7181,6 +7332,12 @@ export namespace std template <> struct hash; template <> struct hash; + //=== VK_KHR_video_decode_vp9 === + template <> struct hash; + template <> struct hash; + template <> struct hash; + template <> struct hash; + //=== VK_KHR_video_maintenance1 === template <> struct hash; template <> struct hash; @@ -7208,6 +7365,10 @@ export namespace std //=== VK_EXT_attachment_feedback_loop_dynamic_state === template <> struct hash; + //=== VK_KHR_unified_image_layouts === + template <> struct hash; + template <> struct hash; + #if defined( VK_USE_PLATFORM_SCREEN_QNX ) //=== VK_QNX_external_memory_screen_buffer === template <> struct hash; @@ -7281,6 +7442,9 @@ export namespace std //=== VK_EXT_shader_replicated_composites === template <> struct hash; + //=== VK_EXT_shader_float8 === + template <> struct hash; + //=== VK_NV_ray_tracing_validation === template <> struct hash; @@ -7353,6 +7517,11 @@ export namespace std template <> struct hash; template <> struct hash; + //=== VK_KHR_maintenance9 === + template <> struct hash; + template <> struct hash; + template <> struct hash; + //=== VK_KHR_video_maintenance2 === template <> struct hash; template <> struct hash; @@ -8433,6 +8602,19 @@ export using ::PFN_vkCmdSetShadingRateImageEnableNV; export using ::PFN_vkCmdSetRepresentativeFragmentTestEnableNV; export using ::PFN_vkCmdSetCoverageReductionModeNV; + //=== VK_ARM_tensors === +export using ::PFN_vkCreateTensorARM; +export using ::PFN_vkDestroyTensorARM; +export using ::PFN_vkCreateTensorViewARM; +export using ::PFN_vkDestroyTensorViewARM; +export using ::PFN_vkGetTensorMemoryRequirementsARM; +export using ::PFN_vkBindTensorMemoryARM; +export using ::PFN_vkGetDeviceTensorMemoryRequirementsARM; +export using ::PFN_vkCmdCopyTensorARM; +export using ::PFN_vkGetPhysicalDeviceExternalTensorPropertiesARM; +export using ::PFN_vkGetTensorOpaqueCaptureDescriptorDataARM; +export using ::PFN_vkGetTensorViewOpaqueCaptureDescriptorDataARM; + //=== VK_EXT_shader_module_identifier === export using ::PFN_vkGetShaderModuleIdentifierEXT; export using ::PFN_vkGetShaderModuleCreateInfoIdentifierEXT; @@ -8453,6 +8635,9 @@ export using ::PFN_vkGetImageSubresourceLayout2KHR; //=== VK_AMD_anti_lag === export using ::PFN_vkAntiLagUpdateAMD; + //=== VK_KHR_present_wait2 === +export using ::PFN_vkWaitForPresent2KHR; + //=== VK_EXT_shader_object === export using ::PFN_vkCreateShadersEXT; export using ::PFN_vkDestroyShaderEXT; diff --git a/include/vulkan/vulkan.hpp b/include/vulkan/vulkan.hpp index 86945fe..0c438cb 100644 --- a/include/vulkan/vulkan.hpp +++ b/include/vulkan/vulkan.hpp @@ -57,7 +57,7 @@ extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE h #endif -static_assert( VK_HEADER_VERSION == 316, "Wrong VK_HEADER_VERSION!" ); +static_assert( VK_HEADER_VERSION == 317, "Wrong VK_HEADER_VERSION!" ); // includes through some other header // this results in major(x) being resolved to gnu_dev_major(x) @@ -5320,6 +5320,74 @@ VULKAN_HPP_INLINE void swap( UniqueHandle & lhs, UniqueHandle & lhs, UniqueHandle struct StructExtends{ enum { value = true }; }; template <> struct StructExtends{ enum { value = true }; }; template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; //=== VK_EXT_graphics_pipeline_library === template <> struct StructExtends{ enum { value = true }; }; @@ -9670,6 +9779,25 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_LUNARG_direct_driver_loading === template <> struct StructExtends{ enum { value = true }; }; + //=== VK_ARM_tensors === + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + //=== VK_EXT_shader_module_identifier === template <> struct StructExtends{ enum { value = true }; }; template <> struct StructExtends{ enum { value = true }; }; @@ -9704,6 +9832,17 @@ namespace VULKAN_HPP_NAMESPACE template <> struct StructExtends{ enum { value = true }; }; template <> struct StructExtends{ enum { value = true }; }; + //=== VK_KHR_present_id2 === + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + + //=== VK_KHR_present_wait2 === + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + //=== VK_KHR_ray_tracing_position_fetch === template <> struct StructExtends{ enum { value = true }; }; template <> struct StructExtends{ enum { value = true }; }; @@ -9823,6 +9962,14 @@ namespace VULKAN_HPP_NAMESPACE template <> struct StructExtends{ enum { value = true }; }; template <> struct StructExtends{ enum { value = true }; }; + //=== VK_KHR_video_decode_vp9 === + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + //=== VK_KHR_video_maintenance1 === template <> struct StructExtends{ enum { value = true }; }; template <> struct StructExtends{ enum { value = true }; }; @@ -9858,6 +10005,11 @@ namespace VULKAN_HPP_NAMESPACE template <> struct StructExtends{ enum { value = true }; }; template <> struct StructExtends{ enum { value = true }; }; + //=== VK_KHR_unified_image_layouts === + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + #if defined( VK_USE_PLATFORM_SCREEN_QNX ) //=== VK_QNX_external_memory_screen_buffer === template <> struct StructExtends{ enum { value = true }; }; @@ -9933,6 +10085,10 @@ namespace VULKAN_HPP_NAMESPACE template <> struct StructExtends{ enum { value = true }; }; template <> struct StructExtends{ enum { value = true }; }; + //=== VK_EXT_shader_float8 === + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + //=== VK_NV_ray_tracing_validation === template <> struct StructExtends{ enum { value = true }; }; template <> struct StructExtends{ enum { value = true }; }; @@ -9977,6 +10133,12 @@ namespace VULKAN_HPP_NAMESPACE template <> struct StructExtends{ enum { value = true }; }; template <> struct StructExtends{ enum { value = true }; }; + //=== VK_KHR_maintenance9 === + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + template <> struct StructExtends{ enum { value = true }; }; + //=== VK_KHR_video_maintenance2 === template <> struct StructExtends{ enum { value = true }; }; template <> struct StructExtends{ enum { value = true }; }; @@ -11264,6 +11426,19 @@ namespace VULKAN_HPP_NAMESPACE PFN_vkCmdSetRepresentativeFragmentTestEnableNV vkCmdSetRepresentativeFragmentTestEnableNV = 0; PFN_vkCmdSetCoverageReductionModeNV vkCmdSetCoverageReductionModeNV = 0; + //=== VK_ARM_tensors === + PFN_vkCreateTensorARM vkCreateTensorARM = 0; + PFN_vkDestroyTensorARM vkDestroyTensorARM = 0; + PFN_vkCreateTensorViewARM vkCreateTensorViewARM = 0; + PFN_vkDestroyTensorViewARM vkDestroyTensorViewARM = 0; + PFN_vkGetTensorMemoryRequirementsARM vkGetTensorMemoryRequirementsARM = 0; + PFN_vkBindTensorMemoryARM vkBindTensorMemoryARM = 0; + PFN_vkGetDeviceTensorMemoryRequirementsARM vkGetDeviceTensorMemoryRequirementsARM = 0; + PFN_vkCmdCopyTensorARM vkCmdCopyTensorARM = 0; + PFN_vkGetPhysicalDeviceExternalTensorPropertiesARM vkGetPhysicalDeviceExternalTensorPropertiesARM = 0; + PFN_vkGetTensorOpaqueCaptureDescriptorDataARM vkGetTensorOpaqueCaptureDescriptorDataARM = 0; + PFN_vkGetTensorViewOpaqueCaptureDescriptorDataARM vkGetTensorViewOpaqueCaptureDescriptorDataARM = 0; + //=== VK_EXT_shader_module_identifier === PFN_vkGetShaderModuleIdentifierEXT vkGetShaderModuleIdentifierEXT = 0; PFN_vkGetShaderModuleCreateInfoIdentifierEXT vkGetShaderModuleCreateInfoIdentifierEXT = 0; @@ -11284,6 +11459,9 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_AMD_anti_lag === PFN_vkAntiLagUpdateAMD vkAntiLagUpdateAMD = 0; + //=== VK_KHR_present_wait2 === + PFN_vkWaitForPresent2KHR vkWaitForPresent2KHR = 0; + //=== VK_EXT_shader_object === PFN_vkCreateShadersEXT vkCreateShadersEXT = 0; PFN_vkDestroyShaderEXT vkDestroyShaderEXT = 0; @@ -12552,6 +12730,19 @@ namespace VULKAN_HPP_NAMESPACE vkCmdSetRepresentativeFragmentTestEnableNV = PFN_vkCmdSetRepresentativeFragmentTestEnableNV( vkGetInstanceProcAddr( instance, "vkCmdSetRepresentativeFragmentTestEnableNV" ) ); vkCmdSetCoverageReductionModeNV = PFN_vkCmdSetCoverageReductionModeNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoverageReductionModeNV" ) ); + //=== VK_ARM_tensors === + vkCreateTensorARM = PFN_vkCreateTensorARM( vkGetInstanceProcAddr( instance, "vkCreateTensorARM" ) ); + vkDestroyTensorARM = PFN_vkDestroyTensorARM( vkGetInstanceProcAddr( instance, "vkDestroyTensorARM" ) ); + vkCreateTensorViewARM = PFN_vkCreateTensorViewARM( vkGetInstanceProcAddr( instance, "vkCreateTensorViewARM" ) ); + vkDestroyTensorViewARM = PFN_vkDestroyTensorViewARM( vkGetInstanceProcAddr( instance, "vkDestroyTensorViewARM" ) ); + vkGetTensorMemoryRequirementsARM = PFN_vkGetTensorMemoryRequirementsARM( vkGetInstanceProcAddr( instance, "vkGetTensorMemoryRequirementsARM" ) ); + vkBindTensorMemoryARM = PFN_vkBindTensorMemoryARM( vkGetInstanceProcAddr( instance, "vkBindTensorMemoryARM" ) ); + vkGetDeviceTensorMemoryRequirementsARM = PFN_vkGetDeviceTensorMemoryRequirementsARM( vkGetInstanceProcAddr( instance, "vkGetDeviceTensorMemoryRequirementsARM" ) ); + vkCmdCopyTensorARM = PFN_vkCmdCopyTensorARM( vkGetInstanceProcAddr( instance, "vkCmdCopyTensorARM" ) ); + vkGetPhysicalDeviceExternalTensorPropertiesARM = PFN_vkGetPhysicalDeviceExternalTensorPropertiesARM( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalTensorPropertiesARM" ) ); + vkGetTensorOpaqueCaptureDescriptorDataARM = PFN_vkGetTensorOpaqueCaptureDescriptorDataARM( vkGetInstanceProcAddr( instance, "vkGetTensorOpaqueCaptureDescriptorDataARM" ) ); + vkGetTensorViewOpaqueCaptureDescriptorDataARM = PFN_vkGetTensorViewOpaqueCaptureDescriptorDataARM( vkGetInstanceProcAddr( instance, "vkGetTensorViewOpaqueCaptureDescriptorDataARM" ) ); + //=== VK_EXT_shader_module_identifier === vkGetShaderModuleIdentifierEXT = PFN_vkGetShaderModuleIdentifierEXT( vkGetInstanceProcAddr( instance, "vkGetShaderModuleIdentifierEXT" ) ); vkGetShaderModuleCreateInfoIdentifierEXT = PFN_vkGetShaderModuleCreateInfoIdentifierEXT( vkGetInstanceProcAddr( instance, "vkGetShaderModuleCreateInfoIdentifierEXT" ) ); @@ -12576,6 +12767,9 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_AMD_anti_lag === vkAntiLagUpdateAMD = PFN_vkAntiLagUpdateAMD( vkGetInstanceProcAddr( instance, "vkAntiLagUpdateAMD" ) ); + //=== VK_KHR_present_wait2 === + vkWaitForPresent2KHR = PFN_vkWaitForPresent2KHR( vkGetInstanceProcAddr( instance, "vkWaitForPresent2KHR" ) ); + //=== VK_EXT_shader_object === vkCreateShadersEXT = PFN_vkCreateShadersEXT( vkGetInstanceProcAddr( instance, "vkCreateShadersEXT" ) ); vkDestroyShaderEXT = PFN_vkDestroyShaderEXT( vkGetInstanceProcAddr( instance, "vkDestroyShaderEXT" ) ); @@ -13567,6 +13761,18 @@ namespace VULKAN_HPP_NAMESPACE vkCmdSetRepresentativeFragmentTestEnableNV = PFN_vkCmdSetRepresentativeFragmentTestEnableNV( vkGetDeviceProcAddr( device, "vkCmdSetRepresentativeFragmentTestEnableNV" ) ); vkCmdSetCoverageReductionModeNV = PFN_vkCmdSetCoverageReductionModeNV( vkGetDeviceProcAddr( device, "vkCmdSetCoverageReductionModeNV" ) ); + //=== VK_ARM_tensors === + vkCreateTensorARM = PFN_vkCreateTensorARM( vkGetDeviceProcAddr( device, "vkCreateTensorARM" ) ); + vkDestroyTensorARM = PFN_vkDestroyTensorARM( vkGetDeviceProcAddr( device, "vkDestroyTensorARM" ) ); + vkCreateTensorViewARM = PFN_vkCreateTensorViewARM( vkGetDeviceProcAddr( device, "vkCreateTensorViewARM" ) ); + vkDestroyTensorViewARM = PFN_vkDestroyTensorViewARM( vkGetDeviceProcAddr( device, "vkDestroyTensorViewARM" ) ); + vkGetTensorMemoryRequirementsARM = PFN_vkGetTensorMemoryRequirementsARM( vkGetDeviceProcAddr( device, "vkGetTensorMemoryRequirementsARM" ) ); + vkBindTensorMemoryARM = PFN_vkBindTensorMemoryARM( vkGetDeviceProcAddr( device, "vkBindTensorMemoryARM" ) ); + vkGetDeviceTensorMemoryRequirementsARM = PFN_vkGetDeviceTensorMemoryRequirementsARM( vkGetDeviceProcAddr( device, "vkGetDeviceTensorMemoryRequirementsARM" ) ); + vkCmdCopyTensorARM = PFN_vkCmdCopyTensorARM( vkGetDeviceProcAddr( device, "vkCmdCopyTensorARM" ) ); + vkGetTensorOpaqueCaptureDescriptorDataARM = PFN_vkGetTensorOpaqueCaptureDescriptorDataARM( vkGetDeviceProcAddr( device, "vkGetTensorOpaqueCaptureDescriptorDataARM" ) ); + vkGetTensorViewOpaqueCaptureDescriptorDataARM = PFN_vkGetTensorViewOpaqueCaptureDescriptorDataARM( vkGetDeviceProcAddr( device, "vkGetTensorViewOpaqueCaptureDescriptorDataARM" ) ); + //=== VK_EXT_shader_module_identifier === vkGetShaderModuleIdentifierEXT = PFN_vkGetShaderModuleIdentifierEXT( vkGetDeviceProcAddr( device, "vkGetShaderModuleIdentifierEXT" ) ); vkGetShaderModuleCreateInfoIdentifierEXT = PFN_vkGetShaderModuleCreateInfoIdentifierEXT( vkGetDeviceProcAddr( device, "vkGetShaderModuleCreateInfoIdentifierEXT" ) ); @@ -13590,6 +13796,9 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_AMD_anti_lag === vkAntiLagUpdateAMD = PFN_vkAntiLagUpdateAMD( vkGetDeviceProcAddr( device, "vkAntiLagUpdateAMD" ) ); + //=== VK_KHR_present_wait2 === + vkWaitForPresent2KHR = PFN_vkWaitForPresent2KHR( vkGetDeviceProcAddr( device, "vkWaitForPresent2KHR" ) ); + //=== VK_EXT_shader_object === vkCreateShadersEXT = PFN_vkCreateShadersEXT( vkGetDeviceProcAddr( device, "vkCreateShadersEXT" ) ); vkDestroyShaderEXT = PFN_vkDestroyShaderEXT( vkGetDeviceProcAddr( device, "vkDestroyShaderEXT" ) ); diff --git a/include/vulkan/vulkan_core.h b/include/vulkan/vulkan_core.h index 256a149..fa027c8 100644 --- a/include/vulkan/vulkan_core.h +++ b/include/vulkan/vulkan_core.h @@ -69,7 +69,7 @@ extern "C" { #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0 // Version of this file -#define VK_HEADER_VERSION 316 +#define VK_HEADER_VERSION 317 // Complete version of this file #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 4, VK_HEADER_VERSION) @@ -1056,6 +1056,30 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003, VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000, VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001, + VK_STRUCTURE_TYPE_TENSOR_CREATE_INFO_ARM = 1000460000, + VK_STRUCTURE_TYPE_TENSOR_VIEW_CREATE_INFO_ARM = 1000460001, + VK_STRUCTURE_TYPE_BIND_TENSOR_MEMORY_INFO_ARM = 1000460002, + VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_TENSOR_ARM = 1000460003, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_PROPERTIES_ARM = 1000460004, + VK_STRUCTURE_TYPE_TENSOR_FORMAT_PROPERTIES_ARM = 1000460005, + VK_STRUCTURE_TYPE_TENSOR_DESCRIPTION_ARM = 1000460006, + VK_STRUCTURE_TYPE_TENSOR_MEMORY_REQUIREMENTS_INFO_ARM = 1000460007, + VK_STRUCTURE_TYPE_TENSOR_MEMORY_BARRIER_ARM = 1000460008, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_FEATURES_ARM = 1000460009, + VK_STRUCTURE_TYPE_DEVICE_TENSOR_MEMORY_REQUIREMENTS_ARM = 1000460010, + VK_STRUCTURE_TYPE_COPY_TENSOR_INFO_ARM = 1000460011, + VK_STRUCTURE_TYPE_TENSOR_COPY_ARM = 1000460012, + VK_STRUCTURE_TYPE_TENSOR_DEPENDENCY_INFO_ARM = 1000460013, + VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_TENSOR_ARM = 1000460014, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_TENSOR_INFO_ARM = 1000460015, + VK_STRUCTURE_TYPE_EXTERNAL_TENSOR_PROPERTIES_ARM = 1000460016, + VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_TENSOR_CREATE_INFO_ARM = 1000460017, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_FEATURES_ARM = 1000460018, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_PROPERTIES_ARM = 1000460019, + VK_STRUCTURE_TYPE_DESCRIPTOR_GET_TENSOR_INFO_ARM = 1000460020, + VK_STRUCTURE_TYPE_TENSOR_CAPTURE_DESCRIPTOR_DATA_INFO_ARM = 1000460021, + VK_STRUCTURE_TYPE_TENSOR_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_ARM = 1000460022, + VK_STRUCTURE_TYPE_FRAME_BOUNDARY_TENSORS_ARM = 1000460023, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001, VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002, @@ -1075,6 +1099,12 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD = 1000476000, VK_STRUCTURE_TYPE_ANTI_LAG_DATA_AMD = 1000476001, VK_STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD = 1000476002, + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_ID_2_KHR = 1000479000, + VK_STRUCTURE_TYPE_PRESENT_ID_2_KHR = 1000479001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR = 1000479002, + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_WAIT_2_KHR = 1000480000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR = 1000480001, + VK_STRUCTURE_TYPE_PRESENT_WAIT_2_INFO_KHR = 1000480002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR = 1000481000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT = 1000482000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT = 1000482001, @@ -1143,6 +1173,10 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUALITY_LEVEL_PROPERTIES_KHR = 1000513008, VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_CREATE_INFO_KHR = 1000513009, VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_INFO_KHR = 1000513010, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_DECODE_VP9_FEATURES_KHR = 1000514000, + VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_CAPABILITIES_KHR = 1000514001, + VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_PICTURE_INFO_KHR = 1000514002, + VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_PROFILE_INFO_KHR = 1000514003, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR = 1000515000, VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR = 1000515001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV = 1000516000, @@ -1156,6 +1190,8 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM = 1000520001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM = 1000521000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT = 1000524000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFIED_IMAGE_LAYOUTS_FEATURES_KHR = 1000527000, + VK_STRUCTURE_TYPE_ATTACHMENT_FEEDBACK_LOOP_INFO_EXT = 1000527001, VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX = 1000529000, VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX = 1000529001, VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX = 1000529002, @@ -1197,6 +1233,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR = 1000562004, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV = 1000563000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT = 1000564000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT8_FEATURES_EXT = 1000567000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV = 1000568000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV = 1000569000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV = 1000569001, @@ -1233,6 +1270,9 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA = 1000575002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT = 1000582000, VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT = 1000582001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_FEATURES_KHR = 1000584000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_PROPERTIES_KHR = 1000584001, + VK_STRUCTURE_TYPE_QUEUE_FAMILY_OWNERSHIP_TRANSFER_PROPERTIES_KHR = 1000584002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR = 1000586000, VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586001, VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586002, @@ -1541,6 +1581,7 @@ typedef enum VkImageLayout { VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR = 1000299001, VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR = 1000299002, VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000, + VK_IMAGE_LAYOUT_TENSOR_ALIASING_ARM = 1000460000, VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR = 1000553000, VK_IMAGE_LAYOUT_ZERO_INITIALIZED_EXT = 1000620000, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, @@ -1610,6 +1651,8 @@ typedef enum VkObjectType { #endif VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000, VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000, + VK_OBJECT_TYPE_TENSOR_ARM = 1000460000, + VK_OBJECT_TYPE_TENSOR_VIEW_ARM = 1000460001, VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000, VK_OBJECT_TYPE_SHADER_EXT = 1000482000, VK_OBJECT_TYPE_PIPELINE_BINARY_KHR = 1000483000, @@ -1898,6 +1941,7 @@ typedef enum VkFormat { VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005, VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006, VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007, + VK_FORMAT_R8_BOOL_ARM = 1000460000, VK_FORMAT_R16G16_SFIXED5_NV = 1000464000, VK_FORMAT_R10X6_UINT_PACK16_ARM = 1000609000, VK_FORMAT_R10X6G10X6_UINT_2PACK16_ARM = 1000609001, @@ -2351,6 +2395,7 @@ typedef enum VkDescriptorType { VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000, VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001, + VK_DESCRIPTOR_TYPE_TENSOR_ARM = 1000460000, VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000, VK_DESCRIPTOR_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_NV = 1000570000, VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, @@ -2589,6 +2634,7 @@ typedef enum VkImageUsageFlagBits { VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 0x00040000, VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 0x00100000, VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 0x00200000, + VK_IMAGE_USAGE_TENSOR_ALIASING_BIT_ARM = 0x00800000, VK_IMAGE_USAGE_TILE_MEMORY_BIT_QCOM = 0x08000000, VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x02000000, VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x04000000, @@ -2738,6 +2784,11 @@ typedef enum VkQueryPipelineStatisticFlagBits { VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkQueryPipelineStatisticFlagBits; typedef VkFlags VkQueryPipelineStatisticFlags; + +typedef enum VkQueryPoolCreateFlagBits { + VK_QUERY_POOL_CREATE_RESET_BIT_KHR = 0x00000001, + VK_QUERY_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkQueryPoolCreateFlagBits; typedef VkFlags VkQueryPoolCreateFlags; typedef enum VkQueryResultFlagBits { @@ -2862,9 +2913,12 @@ typedef enum VkPipelineCreateFlagBits { #ifdef VK_ENABLE_BETA_EXTENSIONS VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000, #endif + // VK_PIPELINE_CREATE_DISPATCH_BASE is a deprecated alias VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT, VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT, - VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE, + VK_PIPELINE_CREATE_DISPATCH_BASE_BIT_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT, + // VK_PIPELINE_CREATE_DISPATCH_BASE_KHR is a deprecated alias + VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT, // VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT is a deprecated alias VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT, // VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR is a deprecated alias @@ -3005,6 +3059,7 @@ typedef enum VkDependencyFlagBits { VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002, VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 0x00000008, VK_DEPENDENCY_QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES_BIT_KHR = 0x00000020, + VK_DEPENDENCY_ASYMMETRIC_EVENT_BIT_KHR = 0x00000040, VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT, VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT, VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF @@ -6109,12 +6164,14 @@ typedef enum VkResolveModeFlagBits { VK_RESOLVE_MODE_AVERAGE_BIT = 0x00000002, VK_RESOLVE_MODE_MIN_BIT = 0x00000004, VK_RESOLVE_MODE_MAX_BIT = 0x00000008, - VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID = 0x00000010, + VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID = 0x00000010, VK_RESOLVE_MODE_NONE_KHR = VK_RESOLVE_MODE_NONE, VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT, VK_RESOLVE_MODE_AVERAGE_BIT_KHR = VK_RESOLVE_MODE_AVERAGE_BIT, VK_RESOLVE_MODE_MIN_BIT_KHR = VK_RESOLVE_MODE_MIN_BIT, VK_RESOLVE_MODE_MAX_BIT_KHR = VK_RESOLVE_MODE_MAX_BIT, + // VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID is a deprecated alias + VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID = VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkResolveModeFlagBits; typedef VkFlags VkResolveModeFlags; @@ -7071,6 +7128,8 @@ static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM = 0x800000000ULL; static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM = 0x1000000000ULL; static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM = 0x2000000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TENSOR_SHADER_BIT_ARM = 0x8000000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TENSOR_IMAGE_ALIASING_BIT_ARM = 0x80000000000ULL; static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV = 0x10000000000ULL; static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV = 0x20000000000ULL; static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV = 0x40000000000ULL; @@ -7999,8 +8058,12 @@ static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT typedef enum VkHostImageCopyFlagBits { - VK_HOST_IMAGE_COPY_MEMCPY = 0x00000001, - VK_HOST_IMAGE_COPY_MEMCPY_EXT = VK_HOST_IMAGE_COPY_MEMCPY, + VK_HOST_IMAGE_COPY_MEMCPY_BIT = 0x00000001, + // VK_HOST_IMAGE_COPY_MEMCPY is a deprecated alias + VK_HOST_IMAGE_COPY_MEMCPY = VK_HOST_IMAGE_COPY_MEMCPY_BIT, + VK_HOST_IMAGE_COPY_MEMCPY_BIT_EXT = VK_HOST_IMAGE_COPY_MEMCPY_BIT, + // VK_HOST_IMAGE_COPY_MEMCPY_EXT is a deprecated alias + VK_HOST_IMAGE_COPY_MEMCPY_EXT = VK_HOST_IMAGE_COPY_MEMCPY_BIT, VK_HOST_IMAGE_COPY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkHostImageCopyFlagBits; typedef VkFlags VkHostImageCopyFlags; @@ -8688,6 +8751,8 @@ typedef enum VkSwapchainCreateFlagBitsKHR { VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002, VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004, VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = 0x00000008, + VK_SWAPCHAIN_CREATE_PRESENT_ID_2_BIT_KHR = 0x00000040, + VK_SWAPCHAIN_CREATE_PRESENT_WAIT_2_BIT_KHR = 0x00000080, VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF } VkSwapchainCreateFlagBitsKHR; typedef VkFlags VkSwapchainCreateFlagsKHR; @@ -9017,6 +9082,7 @@ typedef enum VkVideoCodecOperationFlagBitsKHR { VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 0x00000002, VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR = 0x00000004, VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR = 0x00040000, + VK_VIDEO_CODEC_OPERATION_DECODE_VP9_BIT_KHR = 0x00000008, VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF } VkVideoCodecOperationFlagBitsKHR; typedef VkFlags VkVideoCodecOperationFlagsKHR; @@ -12103,6 +12169,64 @@ VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2KHR( #endif +// VK_KHR_present_id2 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_present_id2 1 +#define VK_KHR_PRESENT_ID_2_SPEC_VERSION 1 +#define VK_KHR_PRESENT_ID_2_EXTENSION_NAME "VK_KHR_present_id2" +typedef struct VkSurfaceCapabilitiesPresentId2KHR { + VkStructureType sType; + void* pNext; + VkBool32 presentId2Supported; +} VkSurfaceCapabilitiesPresentId2KHR; + +typedef struct VkPresentId2KHR { + VkStructureType sType; + const void* pNext; + uint32_t swapchainCount; + const uint64_t* pPresentIds; +} VkPresentId2KHR; + +typedef struct VkPhysicalDevicePresentId2FeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 presentId2; +} VkPhysicalDevicePresentId2FeaturesKHR; + + + +// VK_KHR_present_wait2 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_present_wait2 1 +#define VK_KHR_PRESENT_WAIT_2_SPEC_VERSION 1 +#define VK_KHR_PRESENT_WAIT_2_EXTENSION_NAME "VK_KHR_present_wait2" +typedef struct VkSurfaceCapabilitiesPresentWait2KHR { + VkStructureType sType; + void* pNext; + VkBool32 presentWait2Supported; +} VkSurfaceCapabilitiesPresentWait2KHR; + +typedef struct VkPhysicalDevicePresentWait2FeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 presentWait2; +} VkPhysicalDevicePresentWait2FeaturesKHR; + +typedef struct VkPresentWait2InfoKHR { + VkStructureType sType; + const void* pNext; + uint64_t presentId; + uint64_t timeout; +} VkPresentWait2InfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkWaitForPresent2KHR)(VkDevice device, VkSwapchainKHR swapchain, const VkPresentWait2InfoKHR* pPresentWait2Info); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkWaitForPresent2KHR( + VkDevice device, + VkSwapchainKHR swapchain, + const VkPresentWait2InfoKHR* pPresentWait2Info); +#endif + + // VK_KHR_ray_tracing_position_fetch is a preprocessor guard. Do not pass it to API calls. #define VK_KHR_ray_tracing_position_fetch 1 #define VK_KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION 1 @@ -12259,6 +12383,8 @@ typedef enum VkComponentTypeKHR { VK_COMPONENT_TYPE_UINT8_PACKED_NV = 1000491001, VK_COMPONENT_TYPE_FLOAT_E4M3_NV = 1000491002, VK_COMPONENT_TYPE_FLOAT_E5M2_NV = 1000491003, + VK_COMPONENT_TYPE_FLOAT8_E4M3_EXT = 1000567000, + VK_COMPONENT_TYPE_FLOAT8_E5M2_EXT = 1000567001, VK_COMPONENT_TYPE_FLOAT16_NV = VK_COMPONENT_TYPE_FLOAT16_KHR, VK_COMPONENT_TYPE_FLOAT32_NV = VK_COMPONENT_TYPE_FLOAT32_KHR, VK_COMPONENT_TYPE_FLOAT64_NV = VK_COMPONENT_TYPE_FLOAT64_KHR, @@ -12579,6 +12705,43 @@ typedef struct VkVideoEncodeAV1RateControlLayerInfoKHR { +// VK_KHR_video_decode_vp9 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_video_decode_vp9 1 +#include "vk_video/vulkan_video_codec_vp9std.h" +#include "vk_video/vulkan_video_codec_vp9std_decode.h" +#define VK_MAX_VIDEO_VP9_REFERENCES_PER_FRAME_KHR 3U +#define VK_KHR_VIDEO_DECODE_VP9_SPEC_VERSION 1 +#define VK_KHR_VIDEO_DECODE_VP9_EXTENSION_NAME "VK_KHR_video_decode_vp9" +typedef struct VkPhysicalDeviceVideoDecodeVP9FeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 videoDecodeVP9; +} VkPhysicalDeviceVideoDecodeVP9FeaturesKHR; + +typedef struct VkVideoDecodeVP9ProfileInfoKHR { + VkStructureType sType; + const void* pNext; + StdVideoVP9Profile stdProfile; +} VkVideoDecodeVP9ProfileInfoKHR; + +typedef struct VkVideoDecodeVP9CapabilitiesKHR { + VkStructureType sType; + void* pNext; + StdVideoVP9Level maxLevel; +} VkVideoDecodeVP9CapabilitiesKHR; + +typedef struct VkVideoDecodeVP9PictureInfoKHR { + VkStructureType sType; + const void* pNext; + const StdVideoDecodeVP9PictureInfo* pStdPictureInfo; + int32_t referenceNameSlotIndices[VK_MAX_VIDEO_VP9_REFERENCES_PER_FRAME_KHR]; + uint32_t uncompressedHeaderOffset; + uint32_t compressedHeaderOffset; + uint32_t tilesOffset; +} VkVideoDecodeVP9PictureInfoKHR; + + + // VK_KHR_video_maintenance1 is a preprocessor guard. Do not pass it to API calls. #define VK_KHR_video_maintenance1 1 #define VK_KHR_VIDEO_MAINTENANCE_1_SPEC_VERSION 1 @@ -12619,6 +12782,25 @@ typedef VkPhysicalDeviceVertexAttributeDivisorFeatures VkPhysicalDeviceVertexAtt #define VK_KHR_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_KHR_load_store_op_none" +// VK_KHR_unified_image_layouts is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_unified_image_layouts 1 +#define VK_KHR_UNIFIED_IMAGE_LAYOUTS_SPEC_VERSION 1 +#define VK_KHR_UNIFIED_IMAGE_LAYOUTS_EXTENSION_NAME "VK_KHR_unified_image_layouts" +typedef struct VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 unifiedImageLayouts; + VkBool32 unifiedImageLayoutsVideo; +} VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR; + +typedef struct VkAttachmentFeedbackLoopInfoEXT { + VkStructureType sType; + const void* pNext; + VkBool32 feedbackLoopEnable; +} VkAttachmentFeedbackLoopInfoEXT; + + + // VK_KHR_shader_float_controls2 is a preprocessor guard. Do not pass it to API calls. #define VK_KHR_shader_float_controls2 1 #define VK_KHR_SHADER_FLOAT_CONTROLS_2_SPEC_VERSION 1 @@ -12939,6 +13121,37 @@ typedef struct VkMemoryBarrierAccessFlags3KHR { +// VK_KHR_maintenance9 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_maintenance9 1 +#define VK_KHR_MAINTENANCE_9_SPEC_VERSION 1 +#define VK_KHR_MAINTENANCE_9_EXTENSION_NAME "VK_KHR_maintenance9" + +typedef enum VkDefaultVertexAttributeValueKHR { + VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_ZERO_ZERO_ZERO_ZERO_KHR = 0, + VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_ZERO_ZERO_ZERO_ONE_KHR = 1, + VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkDefaultVertexAttributeValueKHR; +typedef struct VkPhysicalDeviceMaintenance9FeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 maintenance9; +} VkPhysicalDeviceMaintenance9FeaturesKHR; + +typedef struct VkPhysicalDeviceMaintenance9PropertiesKHR { + VkStructureType sType; + void* pNext; + VkBool32 image2DViewOf3DSparse; + VkDefaultVertexAttributeValueKHR defaultVertexAttributeValue; +} VkPhysicalDeviceMaintenance9PropertiesKHR; + +typedef struct VkQueueFamilyOwnershipTransferPropertiesKHR { + VkStructureType sType; + void* pNext; + uint32_t optimalImageTransferToQueueFamilies; +} VkQueueFamilyOwnershipTransferPropertiesKHR; + + + // VK_KHR_video_maintenance2 is a preprocessor guard. Do not pass it to API calls. #define VK_KHR_video_maintenance2 1 #define VK_KHR_VIDEO_MAINTENANCE_2_SPEC_VERSION 1 @@ -14924,13 +15137,17 @@ typedef enum VkGeometryInstanceFlagBitsKHR { VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 0x00000002, VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0x00000004, VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0x00000008, - VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = 0x00000010, - VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = 0x00000020, + VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_BIT_EXT = 0x00000010, + VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_BIT_EXT = 0x00000020, VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR, VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR, VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR, VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR, VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR, + // VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT is a deprecated alias + VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_BIT_EXT, + // VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT is a deprecated alias + VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_BIT_EXT, VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF } VkGeometryInstanceFlagBitsKHR; typedef VkFlags VkGeometryInstanceFlagsKHR; @@ -14946,18 +15163,30 @@ typedef enum VkBuildAccelerationStructureFlagBitsKHR { VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 0x00000008, VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 0x00000010, VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 0x00000020, - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 0x00000040, - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 0x00000080, - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 0x00000100, + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_BIT_EXT = 0x00000040, + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_BIT_EXT = 0x00000080, + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_BIT_EXT = 0x00000100, #ifdef VK_ENABLE_BETA_EXTENSIONS - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV = 0x00000200, + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_BIT_NV = 0x00000200, #endif - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR = 0x00000800, + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_BIT_KHR = 0x00000800, VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR, VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR, VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR, VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR, VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR, + // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT is a deprecated alias + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_BIT_EXT, + // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT is a deprecated alias + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_BIT_EXT, + // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT is a deprecated alias + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_BIT_EXT, +#ifdef VK_ENABLE_BETA_EXTENSIONS + // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV is a deprecated alias + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_BIT_NV, +#endif + // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR is a deprecated alias + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_BIT_KHR, VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF } VkBuildAccelerationStructureFlagBitsKHR; typedef VkFlags VkBuildAccelerationStructureFlagsKHR; @@ -19596,6 +19825,306 @@ typedef struct VkDirectDriverLoadingListLUNARG { +// VK_ARM_tensors is a preprocessor guard. Do not pass it to API calls. +#define VK_ARM_tensors 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkTensorARM) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkTensorViewARM) +#define VK_ARM_TENSORS_SPEC_VERSION 1 +#define VK_ARM_TENSORS_EXTENSION_NAME "VK_ARM_tensors" + +typedef enum VkTensorTilingARM { + VK_TENSOR_TILING_OPTIMAL_ARM = 0, + VK_TENSOR_TILING_LINEAR_ARM = 1, + VK_TENSOR_TILING_MAX_ENUM_ARM = 0x7FFFFFFF +} VkTensorTilingARM; +typedef VkFlags64 VkTensorCreateFlagsARM; + +// Flag bits for VkTensorCreateFlagBitsARM +typedef VkFlags64 VkTensorCreateFlagBitsARM; +static const VkTensorCreateFlagBitsARM VK_TENSOR_CREATE_MUTABLE_FORMAT_BIT_ARM = 0x00000001ULL; +static const VkTensorCreateFlagBitsARM VK_TENSOR_CREATE_PROTECTED_BIT_ARM = 0x00000002ULL; +static const VkTensorCreateFlagBitsARM VK_TENSOR_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM = 0x00000004ULL; + +typedef VkFlags64 VkTensorViewCreateFlagsARM; + +// Flag bits for VkTensorViewCreateFlagBitsARM +typedef VkFlags64 VkTensorViewCreateFlagBitsARM; +static const VkTensorViewCreateFlagBitsARM VK_TENSOR_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM = 0x00000001ULL; + +typedef VkFlags64 VkTensorUsageFlagsARM; + +// Flag bits for VkTensorUsageFlagBitsARM +typedef VkFlags64 VkTensorUsageFlagBitsARM; +static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_SHADER_BIT_ARM = 0x00000002ULL; +static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_TRANSFER_SRC_BIT_ARM = 0x00000004ULL; +static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_TRANSFER_DST_BIT_ARM = 0x00000008ULL; +static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_IMAGE_ALIASING_BIT_ARM = 0x00000010ULL; + +typedef struct VkTensorDescriptionARM { + VkStructureType sType; + const void* pNext; + VkTensorTilingARM tiling; + VkFormat format; + uint32_t dimensionCount; + const int64_t* pDimensions; + const int64_t* pStrides; + VkTensorUsageFlagsARM usage; +} VkTensorDescriptionARM; + +typedef struct VkTensorCreateInfoARM { + VkStructureType sType; + const void* pNext; + VkTensorCreateFlagsARM flags; + const VkTensorDescriptionARM* pDescription; + VkSharingMode sharingMode; + uint32_t queueFamilyIndexCount; + const uint32_t* pQueueFamilyIndices; +} VkTensorCreateInfoARM; + +typedef struct VkTensorViewCreateInfoARM { + VkStructureType sType; + const void* pNext; + VkTensorViewCreateFlagsARM flags; + VkTensorARM tensor; + VkFormat format; +} VkTensorViewCreateInfoARM; + +typedef struct VkTensorMemoryRequirementsInfoARM { + VkStructureType sType; + const void* pNext; + VkTensorARM tensor; +} VkTensorMemoryRequirementsInfoARM; + +typedef struct VkBindTensorMemoryInfoARM { + VkStructureType sType; + const void* pNext; + VkTensorARM tensor; + VkDeviceMemory memory; + VkDeviceSize memoryOffset; +} VkBindTensorMemoryInfoARM; + +typedef struct VkWriteDescriptorSetTensorARM { + VkStructureType sType; + const void* pNext; + uint32_t tensorViewCount; + const VkTensorViewARM* pTensorViews; +} VkWriteDescriptorSetTensorARM; + +typedef struct VkTensorFormatPropertiesARM { + VkStructureType sType; + const void* pNext; + VkFormatFeatureFlags2 optimalTilingTensorFeatures; + VkFormatFeatureFlags2 linearTilingTensorFeatures; +} VkTensorFormatPropertiesARM; + +typedef struct VkPhysicalDeviceTensorPropertiesARM { + VkStructureType sType; + void* pNext; + uint32_t maxTensorDimensionCount; + uint64_t maxTensorElements; + uint64_t maxPerDimensionTensorElements; + int64_t maxTensorStride; + uint64_t maxTensorSize; + uint32_t maxTensorShaderAccessArrayLength; + uint32_t maxTensorShaderAccessSize; + uint32_t maxDescriptorSetStorageTensors; + uint32_t maxPerStageDescriptorSetStorageTensors; + uint32_t maxDescriptorSetUpdateAfterBindStorageTensors; + uint32_t maxPerStageDescriptorUpdateAfterBindStorageTensors; + VkBool32 shaderStorageTensorArrayNonUniformIndexingNative; + VkShaderStageFlags shaderTensorSupportedStages; +} VkPhysicalDeviceTensorPropertiesARM; + +typedef struct VkTensorMemoryBarrierARM { + VkStructureType sType; + const void* pNext; + VkPipelineStageFlags2 srcStageMask; + VkAccessFlags2 srcAccessMask; + VkPipelineStageFlags2 dstStageMask; + VkAccessFlags2 dstAccessMask; + uint32_t srcQueueFamilyIndex; + uint32_t dstQueueFamilyIndex; + VkTensorARM tensor; +} VkTensorMemoryBarrierARM; + +typedef struct VkTensorDependencyInfoARM { + VkStructureType sType; + const void* pNext; + uint32_t tensorMemoryBarrierCount; + const VkTensorMemoryBarrierARM* pTensorMemoryBarriers; +} VkTensorDependencyInfoARM; + +typedef struct VkPhysicalDeviceTensorFeaturesARM { + VkStructureType sType; + void* pNext; + VkBool32 tensorNonPacked; + VkBool32 shaderTensorAccess; + VkBool32 shaderStorageTensorArrayDynamicIndexing; + VkBool32 shaderStorageTensorArrayNonUniformIndexing; + VkBool32 descriptorBindingStorageTensorUpdateAfterBind; + VkBool32 tensors; +} VkPhysicalDeviceTensorFeaturesARM; + +typedef struct VkDeviceTensorMemoryRequirementsARM { + VkStructureType sType; + const void* pNext; + const VkTensorCreateInfoARM* pCreateInfo; +} VkDeviceTensorMemoryRequirementsARM; + +typedef struct VkTensorCopyARM { + VkStructureType sType; + const void* pNext; + uint32_t dimensionCount; + const uint64_t* pSrcOffset; + const uint64_t* pDstOffset; + const uint64_t* pExtent; +} VkTensorCopyARM; + +typedef struct VkCopyTensorInfoARM { + VkStructureType sType; + const void* pNext; + VkTensorARM srcTensor; + VkTensorARM dstTensor; + uint32_t regionCount; + const VkTensorCopyARM* pRegions; +} VkCopyTensorInfoARM; + +typedef struct VkMemoryDedicatedAllocateInfoTensorARM { + VkStructureType sType; + const void* pNext; + VkTensorARM tensor; +} VkMemoryDedicatedAllocateInfoTensorARM; + +typedef struct VkPhysicalDeviceExternalTensorInfoARM { + VkStructureType sType; + const void* pNext; + VkTensorCreateFlagsARM flags; + const VkTensorDescriptionARM* pDescription; + VkExternalMemoryHandleTypeFlagBits handleType; +} VkPhysicalDeviceExternalTensorInfoARM; + +typedef struct VkExternalTensorPropertiesARM { + VkStructureType sType; + const void* pNext; + VkExternalMemoryProperties externalMemoryProperties; +} VkExternalTensorPropertiesARM; + +typedef struct VkExternalMemoryTensorCreateInfoARM { + VkStructureType sType; + const void* pNext; + VkExternalMemoryHandleTypeFlags handleTypes; +} VkExternalMemoryTensorCreateInfoARM; + +typedef struct VkPhysicalDeviceDescriptorBufferTensorFeaturesARM { + VkStructureType sType; + void* pNext; + VkBool32 descriptorBufferTensorDescriptors; +} VkPhysicalDeviceDescriptorBufferTensorFeaturesARM; + +typedef struct VkPhysicalDeviceDescriptorBufferTensorPropertiesARM { + VkStructureType sType; + const void* pNext; + size_t tensorCaptureReplayDescriptorDataSize; + size_t tensorViewCaptureReplayDescriptorDataSize; + size_t tensorDescriptorSize; +} VkPhysicalDeviceDescriptorBufferTensorPropertiesARM; + +typedef struct VkDescriptorGetTensorInfoARM { + VkStructureType sType; + const void* pNext; + VkTensorViewARM tensorView; +} VkDescriptorGetTensorInfoARM; + +typedef struct VkTensorCaptureDescriptorDataInfoARM { + VkStructureType sType; + const void* pNext; + VkTensorARM tensor; +} VkTensorCaptureDescriptorDataInfoARM; + +typedef struct VkTensorViewCaptureDescriptorDataInfoARM { + VkStructureType sType; + const void* pNext; + VkTensorViewARM tensorView; +} VkTensorViewCaptureDescriptorDataInfoARM; + +typedef struct VkFrameBoundaryTensorsARM { + VkStructureType sType; + const void* pNext; + uint32_t tensorCount; + const VkTensorARM* pTensors; +} VkFrameBoundaryTensorsARM; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateTensorARM)(VkDevice device, const VkTensorCreateInfoARM* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkTensorARM* pTensor); +typedef void (VKAPI_PTR *PFN_vkDestroyTensorARM)(VkDevice device, VkTensorARM tensor, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkCreateTensorViewARM)(VkDevice device, const VkTensorViewCreateInfoARM* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkTensorViewARM* pView); +typedef void (VKAPI_PTR *PFN_vkDestroyTensorViewARM)(VkDevice device, VkTensorViewARM tensorView, const VkAllocationCallbacks* pAllocator); +typedef void (VKAPI_PTR *PFN_vkGetTensorMemoryRequirementsARM)(VkDevice device, const VkTensorMemoryRequirementsInfoARM* pInfo, VkMemoryRequirements2* pMemoryRequirements); +typedef VkResult (VKAPI_PTR *PFN_vkBindTensorMemoryARM)(VkDevice device, uint32_t bindInfoCount, const VkBindTensorMemoryInfoARM* pBindInfos); +typedef void (VKAPI_PTR *PFN_vkGetDeviceTensorMemoryRequirementsARM)(VkDevice device, const VkDeviceTensorMemoryRequirementsARM* pInfo, VkMemoryRequirements2* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkCmdCopyTensorARM)(VkCommandBuffer commandBuffer, const VkCopyTensorInfoARM* pCopyTensorInfo); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalTensorPropertiesARM)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalTensorInfoARM* pExternalTensorInfo, VkExternalTensorPropertiesARM* pExternalTensorProperties); +typedef VkResult (VKAPI_PTR *PFN_vkGetTensorOpaqueCaptureDescriptorDataARM)(VkDevice device, const VkTensorCaptureDescriptorDataInfoARM* pInfo, void* pData); +typedef VkResult (VKAPI_PTR *PFN_vkGetTensorViewOpaqueCaptureDescriptorDataARM)(VkDevice device, const VkTensorViewCaptureDescriptorDataInfoARM* pInfo, void* pData); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateTensorARM( + VkDevice device, + const VkTensorCreateInfoARM* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkTensorARM* pTensor); + +VKAPI_ATTR void VKAPI_CALL vkDestroyTensorARM( + VkDevice device, + VkTensorARM tensor, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateTensorViewARM( + VkDevice device, + const VkTensorViewCreateInfoARM* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkTensorViewARM* pView); + +VKAPI_ATTR void VKAPI_CALL vkDestroyTensorViewARM( + VkDevice device, + VkTensorViewARM tensorView, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR void VKAPI_CALL vkGetTensorMemoryRequirementsARM( + VkDevice device, + const VkTensorMemoryRequirementsInfoARM* pInfo, + VkMemoryRequirements2* pMemoryRequirements); + +VKAPI_ATTR VkResult VKAPI_CALL vkBindTensorMemoryARM( + VkDevice device, + uint32_t bindInfoCount, + const VkBindTensorMemoryInfoARM* pBindInfos); + +VKAPI_ATTR void VKAPI_CALL vkGetDeviceTensorMemoryRequirementsARM( + VkDevice device, + const VkDeviceTensorMemoryRequirementsARM* pInfo, + VkMemoryRequirements2* pMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyTensorARM( + VkCommandBuffer commandBuffer, + const VkCopyTensorInfoARM* pCopyTensorInfo); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalTensorPropertiesARM( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceExternalTensorInfoARM* pExternalTensorInfo, + VkExternalTensorPropertiesARM* pExternalTensorProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetTensorOpaqueCaptureDescriptorDataARM( + VkDevice device, + const VkTensorCaptureDescriptorDataInfoARM* pInfo, + void* pData); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetTensorViewOpaqueCaptureDescriptorDataARM( + VkDevice device, + const VkTensorViewCaptureDescriptorDataInfoARM* pInfo, + void* pData); +#endif + + // VK_EXT_shader_module_identifier is a preprocessor guard. Do not pass it to API calls. #define VK_EXT_shader_module_identifier 1 #define VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT 32U @@ -20753,6 +21282,19 @@ typedef struct VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT { +// VK_EXT_shader_float8 is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_shader_float8 1 +#define VK_EXT_SHADER_FLOAT8_SPEC_VERSION 1 +#define VK_EXT_SHADER_FLOAT8_EXTENSION_NAME "VK_EXT_shader_float8" +typedef struct VkPhysicalDeviceShaderFloat8FeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 shaderFloat8; + VkBool32 shaderFloat8CooperativeMatrix; +} VkPhysicalDeviceShaderFloat8FeaturesEXT; + + + // VK_NV_ray_tracing_validation is a preprocessor guard. Do not pass it to API calls. #define VK_NV_ray_tracing_validation 1 #define VK_NV_RAY_TRACING_VALIDATION_SPEC_VERSION 1 diff --git a/include/vulkan/vulkan_enums.hpp b/include/vulkan/vulkan_enums.hpp index 28bb5bc..977f648 100644 --- a/include/vulkan/vulkan_enums.hpp +++ b/include/vulkan/vulkan_enums.hpp @@ -1403,6 +1403,30 @@ namespace VULKAN_HPP_NAMESPACE eRenderPassSubpassFeedbackCreateInfoEXT = VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT, eDirectDriverLoadingInfoLUNARG = VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG, eDirectDriverLoadingListLUNARG = VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG, + eTensorCreateInfoARM = VK_STRUCTURE_TYPE_TENSOR_CREATE_INFO_ARM, + eTensorViewCreateInfoARM = VK_STRUCTURE_TYPE_TENSOR_VIEW_CREATE_INFO_ARM, + eBindTensorMemoryInfoARM = VK_STRUCTURE_TYPE_BIND_TENSOR_MEMORY_INFO_ARM, + eWriteDescriptorSetTensorARM = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_TENSOR_ARM, + ePhysicalDeviceTensorPropertiesARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_PROPERTIES_ARM, + eTensorFormatPropertiesARM = VK_STRUCTURE_TYPE_TENSOR_FORMAT_PROPERTIES_ARM, + eTensorDescriptionARM = VK_STRUCTURE_TYPE_TENSOR_DESCRIPTION_ARM, + eTensorMemoryRequirementsInfoARM = VK_STRUCTURE_TYPE_TENSOR_MEMORY_REQUIREMENTS_INFO_ARM, + eTensorMemoryBarrierARM = VK_STRUCTURE_TYPE_TENSOR_MEMORY_BARRIER_ARM, + ePhysicalDeviceTensorFeaturesARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_FEATURES_ARM, + eDeviceTensorMemoryRequirementsARM = VK_STRUCTURE_TYPE_DEVICE_TENSOR_MEMORY_REQUIREMENTS_ARM, + eCopyTensorInfoARM = VK_STRUCTURE_TYPE_COPY_TENSOR_INFO_ARM, + eTensorCopyARM = VK_STRUCTURE_TYPE_TENSOR_COPY_ARM, + eTensorDependencyInfoARM = VK_STRUCTURE_TYPE_TENSOR_DEPENDENCY_INFO_ARM, + eMemoryDedicatedAllocateInfoTensorARM = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_TENSOR_ARM, + ePhysicalDeviceExternalTensorInfoARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_TENSOR_INFO_ARM, + eExternalTensorPropertiesARM = VK_STRUCTURE_TYPE_EXTERNAL_TENSOR_PROPERTIES_ARM, + eExternalMemoryTensorCreateInfoARM = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_TENSOR_CREATE_INFO_ARM, + ePhysicalDeviceDescriptorBufferTensorFeaturesARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_FEATURES_ARM, + ePhysicalDeviceDescriptorBufferTensorPropertiesARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_PROPERTIES_ARM, + eDescriptorGetTensorInfoARM = VK_STRUCTURE_TYPE_DESCRIPTOR_GET_TENSOR_INFO_ARM, + eTensorCaptureDescriptorDataInfoARM = VK_STRUCTURE_TYPE_TENSOR_CAPTURE_DESCRIPTOR_DATA_INFO_ARM, + eTensorViewCaptureDescriptorDataInfoARM = VK_STRUCTURE_TYPE_TENSOR_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_ARM, + eFrameBoundaryTensorsARM = VK_STRUCTURE_TYPE_FRAME_BOUNDARY_TENSORS_ARM, ePhysicalDeviceShaderModuleIdentifierFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT, ePhysicalDeviceShaderModuleIdentifierPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT, ePipelineShaderStageModuleIdentifierCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT, @@ -1425,6 +1449,12 @@ namespace VULKAN_HPP_NAMESPACE ePhysicalDeviceAntiLagFeaturesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD, eAntiLagDataAMD = VK_STRUCTURE_TYPE_ANTI_LAG_DATA_AMD, eAntiLagPresentationInfoAMD = VK_STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD, + eSurfaceCapabilitiesPresentId2KHR = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_ID_2_KHR, + ePresentId2KHR = VK_STRUCTURE_TYPE_PRESENT_ID_2_KHR, + ePhysicalDevicePresentId2FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR, + eSurfaceCapabilitiesPresentWait2KHR = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_WAIT_2_KHR, + ePhysicalDevicePresentWait2FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR, + ePresentWait2InfoKHR = VK_STRUCTURE_TYPE_PRESENT_WAIT_2_INFO_KHR, ePhysicalDeviceRayTracingPositionFetchFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR, ePhysicalDeviceShaderObjectFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT, ePhysicalDeviceShaderObjectPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT, @@ -1496,6 +1526,10 @@ namespace VULKAN_HPP_NAMESPACE eVideoEncodeAv1QualityLevelPropertiesKHR = VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUALITY_LEVEL_PROPERTIES_KHR, eVideoEncodeAv1SessionCreateInfoKHR = VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_CREATE_INFO_KHR, eVideoEncodeAv1GopRemainingFrameInfoKHR = VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_INFO_KHR, + ePhysicalDeviceVideoDecodeVp9FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_DECODE_VP9_FEATURES_KHR, + eVideoDecodeVp9CapabilitiesKHR = VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_CAPABILITIES_KHR, + eVideoDecodeVp9PictureInfoKHR = VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_PICTURE_INFO_KHR, + eVideoDecodeVp9ProfileInfoKHR = VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_PROFILE_INFO_KHR, ePhysicalDeviceVideoMaintenance1FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR, eVideoInlineQueryInfoKHR = VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR, ePhysicalDevicePerStageDescriptorSetFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV, @@ -1509,6 +1543,8 @@ namespace VULKAN_HPP_NAMESPACE eSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM, ePhysicalDeviceCubicClampFeaturesQCOM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM, ePhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT, + ePhysicalDeviceUnifiedImageLayoutsFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFIED_IMAGE_LAYOUTS_FEATURES_KHR, + eAttachmentFeedbackLoopInfoEXT = VK_STRUCTURE_TYPE_ATTACHMENT_FEEDBACK_LOOP_INFO_EXT, #if defined( VK_USE_PLATFORM_SCREEN_QNX ) eScreenBufferPropertiesQNX = VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX, eScreenBufferFormatPropertiesQNX = VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX, @@ -1553,6 +1589,7 @@ namespace VULKAN_HPP_NAMESPACE ePhysicalDeviceLayeredApiVulkanPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR, ePhysicalDeviceShaderAtomicFloat16VectorFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV, ePhysicalDeviceShaderReplicatedCompositesFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT, + ePhysicalDeviceShaderFloat8FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT8_FEATURES_EXT, ePhysicalDeviceRayTracingValidationFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV, ePhysicalDeviceClusterAccelerationStructureFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV, ePhysicalDeviceClusterAccelerationStructurePropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV, @@ -1589,6 +1626,9 @@ namespace VULKAN_HPP_NAMESPACE eImageAlignmentControlCreateInfoMESA = VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA, ePhysicalDeviceDepthClampControlFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT, ePipelineViewportDepthClampControlCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT, + ePhysicalDeviceMaintenance9FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_FEATURES_KHR, + ePhysicalDeviceMaintenance9PropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_PROPERTIES_KHR, + eQueueFamilyOwnershipTransferPropertiesKHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_OWNERSHIP_TRANSFER_PROPERTIES_KHR, ePhysicalDeviceVideoMaintenance2FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR, eVideoDecodeH264InlineSessionParametersInfoKHR = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_INLINE_SESSION_PARAMETERS_INFO_KHR, eVideoDecodeH265InlineSessionParametersInfoKHR = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_INLINE_SESSION_PARAMETERS_INFO_KHR, @@ -1693,6 +1733,8 @@ namespace VULKAN_HPP_NAMESPACE eBufferCollectionFUCHSIA = VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA, #endif /*VK_USE_PLATFORM_FUCHSIA*/ eMicromapEXT = VK_OBJECT_TYPE_MICROMAP_EXT, + eTensorARM = VK_OBJECT_TYPE_TENSOR_ARM, + eTensorViewARM = VK_OBJECT_TYPE_TENSOR_VIEW_ARM, eOpticalFlowSessionNV = VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV, eShaderEXT = VK_OBJECT_TYPE_SHADER_EXT, ePipelineBinaryKHR = VK_OBJECT_TYPE_PIPELINE_BINARY_KHR, @@ -2024,6 +2066,7 @@ namespace VULKAN_HPP_NAMESPACE ePvrtc14BppSrgbBlockIMG = VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG, ePvrtc22BppSrgbBlockIMG = VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG, ePvrtc24BppSrgbBlockIMG = VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG, + eR8BoolARM = VK_FORMAT_R8_BOOL_ARM, eR16G16Sfixed5NV = VK_FORMAT_R16G16_SFIXED5_NV, eR16G16S105NV = VK_FORMAT_R16G16_S10_5_NV, eR10X6UintPack16ARM = VK_FORMAT_R10X6_UINT_PACK16_ARM, @@ -2241,6 +2284,7 @@ namespace VULKAN_HPP_NAMESPACE eInvocationMaskHUAWEI = VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI, eSampleWeightQCOM = VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM, eSampleBlockMatchQCOM = VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM, + eTensorAliasingARM = VK_IMAGE_USAGE_TENSOR_ALIASING_BIT_ARM, eTileMemoryQCOM = VK_IMAGE_USAGE_TILE_MEMORY_BIT_QCOM, eVideoEncodeQuantizationDeltaMapKHR = VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR, eVideoEncodeEmphasisMapKHR = VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR @@ -2278,6 +2322,7 @@ namespace VULKAN_HPP_NAMESPACE | ImageUsageFlagBits::eInvocationMaskHUAWEI | ImageUsageFlagBits::eSampleWeightQCOM | ImageUsageFlagBits::eSampleBlockMatchQCOM + | ImageUsageFlagBits::eTensorAliasingARM | ImageUsageFlagBits::eTileMemoryQCOM | ImageUsageFlagBits::eVideoEncodeQuantizationDeltaMapKHR | ImageUsageFlagBits::eVideoEncodeEmphasisMapKHR; @@ -2773,6 +2818,25 @@ namespace VULKAN_HPP_NAMESPACE | QueryPipelineStatisticFlagBits::eClusterCullingShaderInvocationsHUAWEI; }; + // wrapper class for enum VkQueryPoolCreateFlagBits, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueryPoolCreateFlagBits.html + enum class QueryPoolCreateFlagBits : VkQueryPoolCreateFlags{ + eResetKHR = VK_QUERY_POOL_CREATE_RESET_BIT_KHR + }; + + + + // wrapper using for bitmask VkQueryPoolCreateFlags, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueryPoolCreateFlags.html + using QueryPoolCreateFlags = Flags; + + + template <> struct FlagTraits + { + using WrappedType = VkQueryPoolCreateFlagBits; + static VULKAN_HPP_CONST_OR_CONSTEXPR bool isBitmask = true; + static VULKAN_HPP_CONST_OR_CONSTEXPR QueryPoolCreateFlags allFlags = + QueryPoolCreateFlagBits::eResetKHR; + }; + // wrapper class for enum VkQueryResultFlagBits, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueryResultFlagBits.html enum class QueryResultFlagBits : VkQueryResultFlags{ e64 = VK_QUERY_RESULT_64_BIT, @@ -2823,22 +2887,6 @@ namespace VULKAN_HPP_NAMESPACE - - enum class QueryPoolCreateFlagBits : VkQueryPoolCreateFlags{}; - - - - // wrapper using for bitmask VkQueryPoolCreateFlags, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueryPoolCreateFlags.html - using QueryPoolCreateFlags = Flags; - - - template <> struct FlagTraits - { - - static VULKAN_HPP_CONST_OR_CONSTEXPR bool isBitmask = true; - static VULKAN_HPP_CONST_OR_CONSTEXPR QueryPoolCreateFlags allFlags = {}; - }; - // wrapper class for enum VkBufferCreateFlagBits, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkBufferCreateFlagBits.html enum class BufferCreateFlagBits : VkBufferCreateFlags{ eSparseBinding = VK_BUFFER_CREATE_SPARSE_BINDING_BIT, @@ -3015,6 +3063,7 @@ namespace VULKAN_HPP_NAMESPACE eVideoEncodeSrcKHR = VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR, eVideoEncodeDpbKHR = VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR, eAttachmentFeedbackLoopOptimalEXT = VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT, + eTensorAliasingARM = VK_IMAGE_LAYOUT_TENSOR_ALIASING_ARM, eVideoEncodeQuantizationMapKHR = VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR, eZeroInitializedEXT = VK_IMAGE_LAYOUT_ZERO_INITIALIZED_EXT }; @@ -3388,7 +3437,7 @@ namespace VULKAN_HPP_NAMESPACE eViewIndexFromDeviceIndex = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT, eViewIndexFromDeviceIndexKHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR, eDispatchBase = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT, - eDispatchBaseKHR = VK_PIPELINE_CREATE_DISPATCH_BASE_KHR, + eDispatchBaseKHR = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT_KHR, eFailOnPipelineCompileRequired = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT, eFailOnPipelineCompileRequiredEXT = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT, eEarlyReturnOnFailure = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT, @@ -3932,6 +3981,7 @@ namespace VULKAN_HPP_NAMESPACE eAccelerationStructureNV = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV, eSampleWeightImageQCOM = VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, eBlockMatchImageQCOM = VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, + eTensorARM = VK_DESCRIPTOR_TYPE_TENSOR_ARM, eMutableEXT = VK_DESCRIPTOR_TYPE_MUTABLE_EXT, eMutableVALVE = VK_DESCRIPTOR_TYPE_MUTABLE_VALVE, ePartitionedAccelerationStructureNV = VK_DESCRIPTOR_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_NV @@ -4087,7 +4137,8 @@ namespace VULKAN_HPP_NAMESPACE eViewLocal = VK_DEPENDENCY_VIEW_LOCAL_BIT, eViewLocalKHR = VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR, eFeedbackLoopEXT = VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT, - eQueueFamilyOwnershipTransferUseAllStagesKHR = VK_DEPENDENCY_QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES_BIT_KHR + eQueueFamilyOwnershipTransferUseAllStagesKHR = VK_DEPENDENCY_QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES_BIT_KHR, + eAsymmetricEventKHR = VK_DEPENDENCY_ASYMMETRIC_EVENT_BIT_KHR }; @@ -4105,7 +4156,8 @@ namespace VULKAN_HPP_NAMESPACE | DependencyFlagBits::eDeviceGroup | DependencyFlagBits::eViewLocal | DependencyFlagBits::eFeedbackLoopEXT - | DependencyFlagBits::eQueueFamilyOwnershipTransferUseAllStagesKHR; + | DependencyFlagBits::eQueueFamilyOwnershipTransferUseAllStagesKHR + | DependencyFlagBits::eAsymmetricEventKHR; }; // wrapper class for enum VkFramebufferCreateFlagBits, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkFramebufferCreateFlagBits.html @@ -4916,7 +4968,7 @@ namespace VULKAN_HPP_NAMESPACE eMin = VK_RESOLVE_MODE_MIN_BIT, eMax = VK_RESOLVE_MODE_MAX_BIT, #if defined( VK_USE_PLATFORM_ANDROID_KHR ) - eExternalFormatDownsampleANDROID = VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID + eExternalFormatDownsampleANDROID = VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID #endif /*VK_USE_PLATFORM_ANDROID_KHR*/ }; @@ -5386,6 +5438,8 @@ namespace VULKAN_HPP_NAMESPACE eWeightSampledImageQCOM = VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM, eBlockMatchingQCOM = VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM, eBoxFilterSampledQCOM = VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM, + eTensorShaderARM = VK_FORMAT_FEATURE_2_TENSOR_SHADER_BIT_ARM, + eTensorImageAliasingARM = VK_FORMAT_FEATURE_2_TENSOR_IMAGE_ALIASING_BIT_ARM, eOpticalFlowImageNV = VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV, eOpticalFlowVectorNV = VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV, eOpticalFlowCostNV = VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV, @@ -5447,6 +5501,8 @@ namespace VULKAN_HPP_NAMESPACE | FormatFeatureFlagBits2::eWeightSampledImageQCOM | FormatFeatureFlagBits2::eBlockMatchingQCOM | FormatFeatureFlagBits2::eBoxFilterSampledQCOM + | FormatFeatureFlagBits2::eTensorShaderARM + | FormatFeatureFlagBits2::eTensorImageAliasingARM | FormatFeatureFlagBits2::eOpticalFlowImageNV | FormatFeatureFlagBits2::eOpticalFlowVectorNV | FormatFeatureFlagBits2::eOpticalFlowCostNV @@ -5713,7 +5769,7 @@ namespace VULKAN_HPP_NAMESPACE // wrapper class for enum VkHostImageCopyFlagBits, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkHostImageCopyFlagBits.html enum class HostImageCopyFlagBits : VkHostImageCopyFlags{ - eMemcpy = VK_HOST_IMAGE_COPY_MEMCPY + eMemcpy = VK_HOST_IMAGE_COPY_MEMCPY_BIT }; using HostImageCopyFlagBitsEXT = HostImageCopyFlagBits; @@ -5838,7 +5894,9 @@ namespace VULKAN_HPP_NAMESPACE eSplitInstanceBindRegions = VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR, eProtected = VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR, eMutableFormat = VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR, - eDeferredMemoryAllocationEXT = VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT + eDeferredMemoryAllocationEXT = VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT, + ePresentId2 = VK_SWAPCHAIN_CREATE_PRESENT_ID_2_BIT_KHR, + ePresentWait2 = VK_SWAPCHAIN_CREATE_PRESENT_WAIT_2_BIT_KHR }; @@ -5855,7 +5913,9 @@ namespace VULKAN_HPP_NAMESPACE SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions | SwapchainCreateFlagBitsKHR::eProtected | SwapchainCreateFlagBitsKHR::eMutableFormat - | SwapchainCreateFlagBitsKHR::eDeferredMemoryAllocationEXT; + | SwapchainCreateFlagBitsKHR::eDeferredMemoryAllocationEXT + | SwapchainCreateFlagBitsKHR::ePresentId2 + | SwapchainCreateFlagBitsKHR::ePresentWait2; }; // wrapper class for enum VkDeviceGroupPresentModeFlagBitsKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceGroupPresentModeFlagBitsKHR.html @@ -6146,7 +6206,8 @@ namespace VULKAN_HPP_NAMESPACE eDecodeH264 = VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR, eDecodeH265 = VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, eDecodeAv1 = VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR, - eEncodeAv1 = VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR + eEncodeAv1 = VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR, + eDecodeVp9 = VK_VIDEO_CODEC_OPERATION_DECODE_VP9_BIT_KHR }; @@ -6166,7 +6227,8 @@ namespace VULKAN_HPP_NAMESPACE | VideoCodecOperationFlagBitsKHR::eDecodeH264 | VideoCodecOperationFlagBitsKHR::eDecodeH265 | VideoCodecOperationFlagBitsKHR::eDecodeAv1 - | VideoCodecOperationFlagBitsKHR::eEncodeAv1; + | VideoCodecOperationFlagBitsKHR::eEncodeAv1 + | VideoCodecOperationFlagBitsKHR::eDecodeVp9; }; // wrapper class for enum VkVideoChromaSubsamplingFlagBitsKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoChromaSubsamplingFlagBitsKHR.html @@ -7326,8 +7388,8 @@ namespace VULKAN_HPP_NAMESPACE eTriangleFrontCounterclockwise = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR, eForceOpaque = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR, eForceNoOpaque = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR, - eForceOpacityMicromap2StateEXT = VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT, - eDisableOpacityMicromapsEXT = VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT + eForceOpacityMicromap2StateEXT = VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_BIT_EXT, + eDisableOpacityMicromapsEXT = VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_BIT_EXT }; using GeometryInstanceFlagBitsNV = GeometryInstanceFlagBitsKHR; @@ -7359,13 +7421,14 @@ namespace VULKAN_HPP_NAMESPACE ePreferFastBuild = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR, eLowMemory = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR, eMotionNV = VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV, - eAllowOpacityMicromapUpdateEXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT, - eAllowDisableOpacityMicromapsEXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT, - eAllowOpacityMicromapDataUpdateEXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT, + eAllowOpacityMicromapUpdateEXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_BIT_EXT, + eAllowDisableOpacityMicromapsEXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_BIT_EXT, + eAllowOpacityMicromapDataUpdateEXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_BIT_EXT, #if defined( VK_ENABLE_BETA_EXTENSIONS ) - eAllowDisplacementMicromapUpdateNV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV, + eAllowDisplacementMicromapUpdateNV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_BIT_NV, + eAllowDisplacementMicromapUpdate = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV, #endif /*VK_ENABLE_BETA_EXTENSIONS*/ - eAllowDataAccess = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR + eAllowDataAccess = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_BIT_KHR }; using BuildAccelerationStructureFlagBitsNV = BuildAccelerationStructureFlagBitsKHR; @@ -8793,6 +8856,83 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DirectDriverLoadingFlagsLUNARG allFlags = {}; }; + //=== VK_ARM_tensors === + + // wrapper class for enum VkTensorCreateFlagBitsARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorCreateFlagBitsARM.html + enum class TensorCreateFlagBitsARM : VkTensorCreateFlagsARM{ + eMutableFormat = VK_TENSOR_CREATE_MUTABLE_FORMAT_BIT_ARM, + eProtected = VK_TENSOR_CREATE_PROTECTED_BIT_ARM, + eDescriptorBufferCaptureReplay = VK_TENSOR_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM + }; + + + + // wrapper using for bitmask VkTensorCreateFlagsARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorCreateFlagsARM.html + using TensorCreateFlagsARM = Flags; + + + template <> struct FlagTraits + { + using WrappedType = VkTensorCreateFlagBitsARM; + static VULKAN_HPP_CONST_OR_CONSTEXPR bool isBitmask = true; + static VULKAN_HPP_CONST_OR_CONSTEXPR TensorCreateFlagsARM allFlags = + TensorCreateFlagBitsARM::eMutableFormat + | TensorCreateFlagBitsARM::eProtected + | TensorCreateFlagBitsARM::eDescriptorBufferCaptureReplay; + }; + + // wrapper class for enum VkTensorViewCreateFlagBitsARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorViewCreateFlagBitsARM.html + enum class TensorViewCreateFlagBitsARM : VkTensorViewCreateFlagsARM{ + eDescriptorBufferCaptureReplay = VK_TENSOR_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM + }; + + + + // wrapper using for bitmask VkTensorViewCreateFlagsARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorViewCreateFlagsARM.html + using TensorViewCreateFlagsARM = Flags; + + + template <> struct FlagTraits + { + using WrappedType = VkTensorViewCreateFlagBitsARM; + static VULKAN_HPP_CONST_OR_CONSTEXPR bool isBitmask = true; + static VULKAN_HPP_CONST_OR_CONSTEXPR TensorViewCreateFlagsARM allFlags = + TensorViewCreateFlagBitsARM::eDescriptorBufferCaptureReplay; + }; + + // wrapper class for enum VkTensorUsageFlagBitsARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorUsageFlagBitsARM.html + enum class TensorUsageFlagBitsARM : VkTensorUsageFlagsARM{ + eShader = VK_TENSOR_USAGE_SHADER_BIT_ARM, + eTransferSrc = VK_TENSOR_USAGE_TRANSFER_SRC_BIT_ARM, + eTransferDst = VK_TENSOR_USAGE_TRANSFER_DST_BIT_ARM, + eImageAliasing = VK_TENSOR_USAGE_IMAGE_ALIASING_BIT_ARM + }; + + + + // wrapper using for bitmask VkTensorUsageFlagsARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorUsageFlagsARM.html + using TensorUsageFlagsARM = Flags; + + + template <> struct FlagTraits + { + using WrappedType = VkTensorUsageFlagBitsARM; + static VULKAN_HPP_CONST_OR_CONSTEXPR bool isBitmask = true; + static VULKAN_HPP_CONST_OR_CONSTEXPR TensorUsageFlagsARM allFlags = + TensorUsageFlagBitsARM::eShader + | TensorUsageFlagBitsARM::eTransferSrc + | TensorUsageFlagBitsARM::eTransferDst + | TensorUsageFlagBitsARM::eImageAliasing; + }; + + // wrapper class for enum VkTensorTilingARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorTilingARM.html + enum class TensorTilingARM{ + eOptimal = VK_TENSOR_TILING_OPTIMAL_ARM, + eLinear = VK_TENSOR_TILING_LINEAR_ARM + }; + + + //=== VK_NV_optical_flow === // wrapper class for enum VkOpticalFlowUsageFlagBitsNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkOpticalFlowUsageFlagBitsNV.html @@ -9023,7 +9163,9 @@ namespace VULKAN_HPP_NAMESPACE eSint8PackedNV = VK_COMPONENT_TYPE_SINT8_PACKED_NV, eUint8PackedNV = VK_COMPONENT_TYPE_UINT8_PACKED_NV, eFloatE4M3NV = VK_COMPONENT_TYPE_FLOAT_E4M3_NV, - eFloatE5M2NV = VK_COMPONENT_TYPE_FLOAT_E5M2_NV + eFloatE5M2NV = VK_COMPONENT_TYPE_FLOAT_E5M2_NV, + eFloat8E4M3EXT = VK_COMPONENT_TYPE_FLOAT8_E4M3_EXT, + eFloat8E5M2EXT = VK_COMPONENT_TYPE_FLOAT8_E5M2_EXT }; using ComponentTypeNV = ComponentTypeKHR; @@ -9611,6 +9753,16 @@ namespace VULKAN_HPP_NAMESPACE + //=== VK_KHR_maintenance9 === + + // wrapper class for enum VkDefaultVertexAttributeValueKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkDefaultVertexAttributeValueKHR.html + enum class DefaultVertexAttributeValueKHR{ + eZeroZeroZeroZero = VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_ZERO_ZERO_ZERO_ZERO_KHR, + eZeroZeroZeroOne = VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_ZERO_ZERO_ZERO_ONE_KHR + }; + + + //=========================================================== @@ -9712,6 +9864,10 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_EXT_opacity_micromap === case VULKAN_HPP_NAMESPACE::ObjectType::eMicromapEXT : return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; + //=== VK_ARM_tensors === + case VULKAN_HPP_NAMESPACE::ObjectType::eTensorARM : return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; + case VULKAN_HPP_NAMESPACE::ObjectType::eTensorViewARM : return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; + //=== VK_NV_optical_flow === case VULKAN_HPP_NAMESPACE::ObjectType::eOpticalFlowSessionNV : return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; diff --git a/include/vulkan/vulkan_extension_inspection.hpp b/include/vulkan/vulkan_extension_inspection.hpp index 4c836e0..f2ec1e4 100644 --- a/include/vulkan/vulkan_extension_inspection.hpp +++ b/include/vulkan/vulkan_extension_inspection.hpp @@ -403,6 +403,7 @@ namespace VULKAN_HPP_NAMESPACE "VK_EXT_external_memory_acquire_unmodified", "VK_EXT_extended_dynamic_state3", "VK_EXT_subpass_merge_feedback", +"VK_ARM_tensors", "VK_EXT_shader_module_identifier", "VK_EXT_rasterization_order_attachment_access", "VK_NV_optical_flow", @@ -413,6 +414,8 @@ namespace VULKAN_HPP_NAMESPACE #endif /*VK_USE_PLATFORM_ANDROID_KHR*/ "VK_KHR_maintenance5", "VK_AMD_anti_lag", +"VK_KHR_present_id2", +"VK_KHR_present_wait2", "VK_KHR_ray_tracing_position_fetch", "VK_EXT_shader_object", "VK_KHR_pipeline_binary", @@ -433,6 +436,7 @@ namespace VULKAN_HPP_NAMESPACE "VK_KHR_compute_shader_derivatives", "VK_KHR_video_decode_av1", "VK_KHR_video_encode_av1", +"VK_KHR_video_decode_vp9", "VK_KHR_video_maintenance1", "VK_NV_per_stage_descriptor_set", "VK_QCOM_image_processing2", @@ -442,6 +446,7 @@ namespace VULKAN_HPP_NAMESPACE "VK_EXT_attachment_feedback_loop_dynamic_state", "VK_KHR_vertex_attribute_divisor", "VK_KHR_load_store_op_none", +"VK_KHR_unified_image_layouts", "VK_KHR_shader_float_controls2", #if defined( VK_USE_PLATFORM_SCREEN_QNX ) "VK_QNX_external_memory_screen_buffer", @@ -462,6 +467,7 @@ namespace VULKAN_HPP_NAMESPACE "VK_KHR_maintenance7", "VK_NV_shader_atomic_float16_vector", "VK_EXT_shader_replicated_composites", +"VK_EXT_shader_float8", "VK_NV_ray_tracing_validation", "VK_NV_cluster_acceleration_structure", "VK_NV_partitioned_acceleration_structure", @@ -469,6 +475,7 @@ namespace VULKAN_HPP_NAMESPACE "VK_KHR_maintenance8", "VK_MESA_image_alignment_control", "VK_EXT_depth_clamp_control", +"VK_KHR_maintenance9", "VK_KHR_video_maintenance2", "VK_HUAWEI_hdr_vivid", "VK_NV_cooperative_matrix2", @@ -870,6 +877,7 @@ namespace VULKAN_HPP_NAMESPACE { "VK_EXT_external_memory_acquire_unmodified", { { "VK_VERSION_1_0", { { "VK_KHR_external_memory", } } }, { "VK_VERSION_1_1", { { } } } } }, { "VK_EXT_extended_dynamic_state3", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", } } }, { "VK_VERSION_1_1", { { } } } } }, { "VK_EXT_subpass_merge_feedback", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", } } }, { "VK_VERSION_1_1", { { } } } } }, +{ "VK_ARM_tensors", { { "VK_VERSION_1_3", { { } } } } }, { "VK_EXT_shader_module_identifier", { { "VK_VERSION_1_0", { { "VK_EXT_pipeline_creation_cache_control", "VK_KHR_get_physical_device_properties2", } } }, { "VK_VERSION_1_1", { { "VK_EXT_pipeline_creation_cache_control", } } }, { "VK_VERSION_1_3", { { } } } } }, { "VK_EXT_rasterization_order_attachment_access", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", } } }, { "VK_VERSION_1_1", { { } } } } }, { "VK_NV_optical_flow", { { "VK_VERSION_1_0", { { "VK_KHR_format_feature_flags2", "VK_KHR_get_physical_device_properties2", "VK_KHR_synchronization2", } } }, { "VK_VERSION_1_1", { { "VK_KHR_format_feature_flags2", "VK_KHR_synchronization2", } } }, { "VK_VERSION_1_3", { { } } } } }, @@ -879,6 +887,8 @@ namespace VULKAN_HPP_NAMESPACE { "VK_ANDROID_external_format_resolve", { { "VK_VERSION_1_0", { { "VK_ANDROID_external_memory_android_hardware_buffer", } } } } }, #endif /*VK_USE_PLATFORM_ANDROID_KHR*/ { "VK_KHR_maintenance5", { { "VK_VERSION_1_1", { { "VK_KHR_dynamic_rendering", } } }, { "VK_VERSION_1_3", { { } } } } }, +{ "VK_KHR_present_id2", { { "VK_VERSION_1_0", { { "VK_KHR_get_surface_capabilities2", "VK_KHR_surface", "VK_KHR_swapchain", } } } } }, +{ "VK_KHR_present_wait2", { { "VK_VERSION_1_0", { { "VK_KHR_get_surface_capabilities2", "VK_KHR_present_id2", "VK_KHR_surface", "VK_KHR_swapchain", } } } } }, { "VK_KHR_ray_tracing_position_fetch", { { "VK_VERSION_1_0", { { "VK_KHR_acceleration_structure", } } } } }, { "VK_EXT_shader_object", { { "VK_VERSION_1_0", { { "VK_KHR_dynamic_rendering", "VK_KHR_get_physical_device_properties2", } } }, { "VK_VERSION_1_1", { { "VK_KHR_dynamic_rendering", } } }, { "VK_VERSION_1_3", { { } } } } }, { "VK_KHR_pipeline_binary", { { "VK_VERSION_1_0", { { "VK_KHR_maintenance5", } } }, { "VK_VERSION_1_4", { { } } } } }, @@ -891,11 +901,12 @@ namespace VULKAN_HPP_NAMESPACE { "VK_ARM_shader_core_builtins", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", } } }, { "VK_VERSION_1_1", { { } } } } }, { "VK_EXT_pipeline_library_group_handles", { { "VK_VERSION_1_0", { { "VK_KHR_pipeline_library", "VK_KHR_ray_tracing_pipeline", } } } } }, { "VK_EXT_dynamic_rendering_unused_attachments", { { "VK_VERSION_1_0", { { "VK_KHR_dynamic_rendering", "VK_KHR_get_physical_device_properties2", } } }, { "VK_VERSION_1_1", { { "VK_KHR_dynamic_rendering", } } }, { "VK_VERSION_1_3", { { } } } } }, -{ "VK_NV_low_latency2", { { "VK_VERSION_1_0", { { "VK_KHR_timeline_semaphore", } } }, { "VK_VERSION_1_2", { { } } } } }, +{ "VK_NV_low_latency2", { { "VK_VERSION_1_0", { { "VK_KHR_present_id", "VK_KHR_timeline_semaphore", }, { "VK_KHR_present_id2", "VK_KHR_timeline_semaphore", } } }, { "VK_VERSION_1_2", { { "VK_KHR_present_id", }, { "VK_KHR_present_id2", } } } } }, { "VK_KHR_cooperative_matrix", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", } } }, { "VK_VERSION_1_1", { { } } } } }, { "VK_KHR_compute_shader_derivatives", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", } } }, { "VK_VERSION_1_1", { { } } } } }, { "VK_KHR_video_decode_av1", { { "VK_VERSION_1_0", { { "VK_KHR_video_decode_queue", } } } } }, { "VK_KHR_video_encode_av1", { { "VK_VERSION_1_0", { { "VK_KHR_video_encode_queue", } } } } }, +{ "VK_KHR_video_decode_vp9", { { "VK_VERSION_1_0", { { "VK_KHR_video_decode_queue", } } } } }, { "VK_KHR_video_maintenance1", { { "VK_VERSION_1_0", { { "VK_KHR_video_queue", } } } } }, { "VK_NV_per_stage_descriptor_set", { { "VK_VERSION_1_0", { { "VK_KHR_maintenance6", } } }, { "VK_VERSION_1_4", { { } } } } }, { "VK_QCOM_image_processing2", { { "VK_VERSION_1_0", { { "VK_QCOM_image_processing", } } } } }, @@ -924,6 +935,7 @@ namespace VULKAN_HPP_NAMESPACE { "VK_KHR_maintenance8", { { "VK_VERSION_1_1", { { } } } } }, { "VK_MESA_image_alignment_control", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", } } }, { "VK_VERSION_1_1", { { } } } } }, { "VK_EXT_depth_clamp_control", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", } } }, { "VK_VERSION_1_1", { { } } } } }, +{ "VK_KHR_maintenance9", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", } } }, { "VK_VERSION_1_1", { { } } } } }, { "VK_KHR_video_maintenance2", { { "VK_VERSION_1_0", { { "VK_KHR_video_queue", } } } } }, { "VK_HUAWEI_hdr_vivid", { { "VK_VERSION_1_0", { { "VK_EXT_hdr_metadata", "VK_KHR_get_physical_device_properties2", "VK_KHR_swapchain", } } }, { "VK_VERSION_1_1", { { "VK_EXT_hdr_metadata", "VK_KHR_swapchain", } } } } }, { "VK_NV_cooperative_matrix2", { { "VK_VERSION_1_0", { { "VK_KHR_cooperative_matrix", } } } } }, @@ -1083,7 +1095,8 @@ namespace VULKAN_HPP_NAMESPACE { "VK_KHR_index_type_uint8", "VK_VERSION_1_4"}, { "VK_KHR_line_rasterization", "VK_VERSION_1_4"}, { "VK_KHR_shader_expect_assume", "VK_VERSION_1_4"}, -{ "VK_KHR_maintenance6", "VK_VERSION_1_4"} }; +{ "VK_KHR_maintenance6", "VK_VERSION_1_4"}, +{ "VK_EXT_vertex_attribute_robustness", "VK_KHR_maintenance9"} }; return promotedExtensions; } @@ -1237,6 +1250,7 @@ namespace VULKAN_HPP_NAMESPACE if ( extension == "VK_KHR_line_rasterization" ) { return "VK_VERSION_1_4"; } if ( extension == "VK_KHR_shader_expect_assume" ) { return "VK_VERSION_1_4"; } if ( extension == "VK_KHR_maintenance6" ) { return "VK_VERSION_1_4"; } + if ( extension == "VK_EXT_vertex_attribute_robustness" ) { return "VK_KHR_maintenance9"; } return ""; } @@ -1598,6 +1612,7 @@ false; || ( extension == "VK_EXT_external_memory_acquire_unmodified" ) || ( extension == "VK_EXT_extended_dynamic_state3" ) || ( extension == "VK_EXT_subpass_merge_feedback" ) + || ( extension == "VK_ARM_tensors" ) || ( extension == "VK_EXT_shader_module_identifier" ) || ( extension == "VK_EXT_rasterization_order_attachment_access" ) || ( extension == "VK_NV_optical_flow" ) @@ -1608,6 +1623,8 @@ false; #endif /*VK_USE_PLATFORM_ANDROID_KHR*/ || ( extension == "VK_KHR_maintenance5" ) || ( extension == "VK_AMD_anti_lag" ) + || ( extension == "VK_KHR_present_id2" ) + || ( extension == "VK_KHR_present_wait2" ) || ( extension == "VK_KHR_ray_tracing_position_fetch" ) || ( extension == "VK_EXT_shader_object" ) || ( extension == "VK_KHR_pipeline_binary" ) @@ -1628,6 +1645,7 @@ false; || ( extension == "VK_KHR_compute_shader_derivatives" ) || ( extension == "VK_KHR_video_decode_av1" ) || ( extension == "VK_KHR_video_encode_av1" ) + || ( extension == "VK_KHR_video_decode_vp9" ) || ( extension == "VK_KHR_video_maintenance1" ) || ( extension == "VK_NV_per_stage_descriptor_set" ) || ( extension == "VK_QCOM_image_processing2" ) @@ -1637,6 +1655,7 @@ false; || ( extension == "VK_EXT_attachment_feedback_loop_dynamic_state" ) || ( extension == "VK_KHR_vertex_attribute_divisor" ) || ( extension == "VK_KHR_load_store_op_none" ) + || ( extension == "VK_KHR_unified_image_layouts" ) || ( extension == "VK_KHR_shader_float_controls2" ) #if defined( VK_USE_PLATFORM_SCREEN_QNX ) || ( extension == "VK_QNX_external_memory_screen_buffer" ) @@ -1657,6 +1676,7 @@ false; || ( extension == "VK_KHR_maintenance7" ) || ( extension == "VK_NV_shader_atomic_float16_vector" ) || ( extension == "VK_EXT_shader_replicated_composites" ) + || ( extension == "VK_EXT_shader_float8" ) || ( extension == "VK_NV_ray_tracing_validation" ) || ( extension == "VK_NV_cluster_acceleration_structure" ) || ( extension == "VK_NV_partitioned_acceleration_structure" ) @@ -1664,6 +1684,7 @@ false; || ( extension == "VK_KHR_maintenance8" ) || ( extension == "VK_MESA_image_alignment_control" ) || ( extension == "VK_EXT_depth_clamp_control" ) + || ( extension == "VK_KHR_maintenance9" ) || ( extension == "VK_KHR_video_maintenance2" ) || ( extension == "VK_HUAWEI_hdr_vivid" ) || ( extension == "VK_NV_cooperative_matrix2" ) @@ -1869,7 +1890,8 @@ false; ( extension == "VK_KHR_index_type_uint8" ) || ( extension == "VK_KHR_line_rasterization" ) || ( extension == "VK_KHR_shader_expect_assume" ) || -( extension == "VK_KHR_maintenance6" ); +( extension == "VK_KHR_maintenance6" ) || +( extension == "VK_EXT_vertex_attribute_robustness" ); } } // namespace VULKAN_HPP_NAMESPACE diff --git a/include/vulkan/vulkan_format_traits.hpp b/include/vulkan/vulkan_format_traits.hpp index 89c0d29..219c158 100644 --- a/include/vulkan/vulkan_format_traits.hpp +++ b/include/vulkan/vulkan_format_traits.hpp @@ -455,6 +455,7 @@ namespace VULKAN_HPP_NAMESPACE case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG: return 8; case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG: return 8; case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return 8; + case VULKAN_HPP_NAMESPACE::Format::eR8BoolARM: return 1; case VULKAN_HPP_NAMESPACE::Format::eR16G16Sfixed5NV: return 4; case VULKAN_HPP_NAMESPACE::Format::eR10X6UintPack16ARM: return 2; case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Uint2Pack16ARM: return 4; @@ -728,6 +729,7 @@ namespace VULKAN_HPP_NAMESPACE case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG: return "PVRTC1_4BPP"; case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG: return "PVRTC2_2BPP"; case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return "PVRTC2_4BPP"; + case VULKAN_HPP_NAMESPACE::Format::eR8BoolARM: return "8-bit"; case VULKAN_HPP_NAMESPACE::Format::eR16G16Sfixed5NV: return "32-bit"; case VULKAN_HPP_NAMESPACE::Format::eR10X6UintPack16ARM: return "16-bit"; case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Uint2Pack16ARM: return "32-bit"; @@ -2139,6 +2141,12 @@ namespace VULKAN_HPP_NAMESPACE case 0: return 8; default: VULKAN_HPP_ASSERT( false ); return 0; } + case VULKAN_HPP_NAMESPACE::Format::eR8BoolARM: + switch( component ) + { + case 0: return 8; + default: VULKAN_HPP_ASSERT( false ); return 0; + } case VULKAN_HPP_NAMESPACE::Format::eR16G16Sfixed5NV: switch( component ) { @@ -2508,6 +2516,7 @@ namespace VULKAN_HPP_NAMESPACE case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG: return 4; case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG: return 4; case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return 4; + case VULKAN_HPP_NAMESPACE::Format::eR8BoolARM: return 1; case VULKAN_HPP_NAMESPACE::Format::eR16G16Sfixed5NV: return 2; case VULKAN_HPP_NAMESPACE::Format::eR10X6UintPack16ARM: return 1; case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Uint2Pack16ARM: return 2; @@ -4551,6 +4560,12 @@ namespace VULKAN_HPP_NAMESPACE case 3: return "A"; default: VULKAN_HPP_ASSERT( false ); return ""; } + case VULKAN_HPP_NAMESPACE::Format::eR8BoolARM: + switch( component ) + { + case 0: return "R"; + default: VULKAN_HPP_ASSERT( false ); return ""; + } case VULKAN_HPP_NAMESPACE::Format::eR16G16Sfixed5NV: switch( component ) { @@ -6690,6 +6705,12 @@ namespace VULKAN_HPP_NAMESPACE case 3: return "UNORM"; default: VULKAN_HPP_ASSERT( false ); return ""; } + case VULKAN_HPP_NAMESPACE::Format::eR8BoolARM: + switch( component ) + { + case 0: return "BOOL"; + default: VULKAN_HPP_ASSERT( false ); return ""; + } case VULKAN_HPP_NAMESPACE::Format::eR16G16Sfixed5NV: switch( component ) { @@ -7196,14 +7217,14 @@ namespace VULKAN_HPP_NAMESPACE // Get all formats VULKAN_HPP_INLINE std::vector const & getAllFormats() { - static std::vector allFormats = { VULKAN_HPP_NAMESPACE::Format::eR4G4UnormPack8, VULKAN_HPP_NAMESPACE::Format::eR4G4B4A4UnormPack16, VULKAN_HPP_NAMESPACE::Format::eB4G4R4A4UnormPack16, VULKAN_HPP_NAMESPACE::Format::eR5G6B5UnormPack16, VULKAN_HPP_NAMESPACE::Format::eB5G6R5UnormPack16, VULKAN_HPP_NAMESPACE::Format::eR5G5B5A1UnormPack16, VULKAN_HPP_NAMESPACE::Format::eB5G5R5A1UnormPack16, VULKAN_HPP_NAMESPACE::Format::eA1R5G5B5UnormPack16, VULKAN_HPP_NAMESPACE::Format::eR8Unorm, VULKAN_HPP_NAMESPACE::Format::eR8Snorm, VULKAN_HPP_NAMESPACE::Format::eR8Uscaled, VULKAN_HPP_NAMESPACE::Format::eR8Sscaled, VULKAN_HPP_NAMESPACE::Format::eR8Uint, VULKAN_HPP_NAMESPACE::Format::eR8Sint, VULKAN_HPP_NAMESPACE::Format::eR8Srgb, VULKAN_HPP_NAMESPACE::Format::eR8G8Unorm, VULKAN_HPP_NAMESPACE::Format::eR8G8Snorm, VULKAN_HPP_NAMESPACE::Format::eR8G8Uscaled, VULKAN_HPP_NAMESPACE::Format::eR8G8Sscaled, VULKAN_HPP_NAMESPACE::Format::eR8G8Uint, VULKAN_HPP_NAMESPACE::Format::eR8G8Sint, VULKAN_HPP_NAMESPACE::Format::eR8G8Srgb, VULKAN_HPP_NAMESPACE::Format::eR8G8B8Unorm, VULKAN_HPP_NAMESPACE::Format::eR8G8B8Snorm, VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uscaled, VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sscaled, VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uint, VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sint, VULKAN_HPP_NAMESPACE::Format::eR8G8B8Srgb, VULKAN_HPP_NAMESPACE::Format::eB8G8R8Unorm, VULKAN_HPP_NAMESPACE::Format::eB8G8R8Snorm, VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uscaled, VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sscaled, VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uint, VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sint, VULKAN_HPP_NAMESPACE::Format::eB8G8R8Srgb, VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Unorm, VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Snorm, VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uscaled, VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sscaled, VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uint, VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sint, VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Srgb, VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Unorm, VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Snorm, VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uscaled, VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sscaled, VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uint, VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sint, VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Srgb, VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UnormPack32, VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SnormPack32, VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UscaledPack32, VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SscaledPack32, VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UintPack32, VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SintPack32, VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SrgbPack32, VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UnormPack32, VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SnormPack32, VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UscaledPack32, VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SscaledPack32, VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UintPack32, VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SintPack32, VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UnormPack32, VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SnormPack32, VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UscaledPack32, VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SscaledPack32, VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UintPack32, VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SintPack32, VULKAN_HPP_NAMESPACE::Format::eR16Unorm, VULKAN_HPP_NAMESPACE::Format::eR16Snorm, VULKAN_HPP_NAMESPACE::Format::eR16Uscaled, VULKAN_HPP_NAMESPACE::Format::eR16Sscaled, VULKAN_HPP_NAMESPACE::Format::eR16Uint, VULKAN_HPP_NAMESPACE::Format::eR16Sint, VULKAN_HPP_NAMESPACE::Format::eR16Sfloat, VULKAN_HPP_NAMESPACE::Format::eR16G16Unorm, VULKAN_HPP_NAMESPACE::Format::eR16G16Snorm, VULKAN_HPP_NAMESPACE::Format::eR16G16Uscaled, VULKAN_HPP_NAMESPACE::Format::eR16G16Sscaled, VULKAN_HPP_NAMESPACE::Format::eR16G16Uint, VULKAN_HPP_NAMESPACE::Format::eR16G16Sint, VULKAN_HPP_NAMESPACE::Format::eR16G16Sfloat, VULKAN_HPP_NAMESPACE::Format::eR16G16B16Unorm, VULKAN_HPP_NAMESPACE::Format::eR16G16B16Snorm, VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uscaled, VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sscaled, VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uint, VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sint, VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sfloat, VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Unorm, VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Snorm, VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uscaled, VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sscaled, VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uint, VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sint, VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sfloat, VULKAN_HPP_NAMESPACE::Format::eR32Uint, VULKAN_HPP_NAMESPACE::Format::eR32Sint, VULKAN_HPP_NAMESPACE::Format::eR32Sfloat, VULKAN_HPP_NAMESPACE::Format::eR32G32Uint, VULKAN_HPP_NAMESPACE::Format::eR32G32Sint, VULKAN_HPP_NAMESPACE::Format::eR32G32Sfloat, VULKAN_HPP_NAMESPACE::Format::eR32G32B32Uint, VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sint, VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sfloat, VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Uint, VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sint, VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sfloat, VULKAN_HPP_NAMESPACE::Format::eR64Uint, VULKAN_HPP_NAMESPACE::Format::eR64Sint, VULKAN_HPP_NAMESPACE::Format::eR64Sfloat, VULKAN_HPP_NAMESPACE::Format::eR64G64Uint, VULKAN_HPP_NAMESPACE::Format::eR64G64Sint, VULKAN_HPP_NAMESPACE::Format::eR64G64Sfloat, VULKAN_HPP_NAMESPACE::Format::eR64G64B64Uint, VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sint, VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sfloat, VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Uint, VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sint, VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sfloat, VULKAN_HPP_NAMESPACE::Format::eB10G11R11UfloatPack32, VULKAN_HPP_NAMESPACE::Format::eE5B9G9R9UfloatPack32, VULKAN_HPP_NAMESPACE::Format::eD16Unorm, VULKAN_HPP_NAMESPACE::Format::eX8D24UnormPack32, VULKAN_HPP_NAMESPACE::Format::eD32Sfloat, VULKAN_HPP_NAMESPACE::Format::eS8Uint, VULKAN_HPP_NAMESPACE::Format::eD16UnormS8Uint, VULKAN_HPP_NAMESPACE::Format::eD24UnormS8Uint, VULKAN_HPP_NAMESPACE::Format::eD32SfloatS8Uint, VULKAN_HPP_NAMESPACE::Format::eBc1RgbUnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc1RgbSrgbBlock, VULKAN_HPP_NAMESPACE::Format::eBc1RgbaUnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc1RgbaSrgbBlock, VULKAN_HPP_NAMESPACE::Format::eBc2UnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc2SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eBc3UnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc3SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eBc4UnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc4SnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc5UnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc5SnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc6HUfloatBlock, VULKAN_HPP_NAMESPACE::Format::eBc6HSfloatBlock, VULKAN_HPP_NAMESPACE::Format::eBc7UnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc7SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8UnormBlock, VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1UnormBlock, VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8UnormBlock, VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eEacR11UnormBlock, VULKAN_HPP_NAMESPACE::Format::eEacR11SnormBlock, VULKAN_HPP_NAMESPACE::Format::eEacR11G11UnormBlock, VULKAN_HPP_NAMESPACE::Format::eEacR11G11SnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc4x4UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc4x4SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc5x4UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc5x4SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc5x5UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc5x5SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc6x5UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc6x5SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc6x6UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc6x6SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x5UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x5SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x6UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x6SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x8UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x8SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x5UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x5SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x6UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x6SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x8UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x8SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x10UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x10SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc12x10UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc12x10SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc12x12UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc12x12SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eG8B8G8R8422Unorm, VULKAN_HPP_NAMESPACE::Format::eB8G8R8G8422Unorm, VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm, VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm, VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm, VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm, VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm, VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16, VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Unorm2Pack16, VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6B10X6A10X6Unorm4Pack16, VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16, VULKAN_HPP_NAMESPACE::Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16, VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16, VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Unorm2Pack16, VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4B12X4A12X4Unorm4Pack16, VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16, VULKAN_HPP_NAMESPACE::Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16, VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG16B16G16R16422Unorm, VULKAN_HPP_NAMESPACE::Format::eB16G16R16G16422Unorm, VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm, VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm, VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm, VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm, VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm, VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444Unorm, VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444Unorm, VULKAN_HPP_NAMESPACE::Format::eA4R4G4B4UnormPack16, VULKAN_HPP_NAMESPACE::Format::eA4B4G4R4UnormPack16, VULKAN_HPP_NAMESPACE::Format::eAstc4x4SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc5x4SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc5x5SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc6x5SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc6x6SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x5SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x6SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x8SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x5SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x6SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x8SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x10SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc12x10SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc12x12SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eA1B5G5R5UnormPack16, VULKAN_HPP_NAMESPACE::Format::eA8Unorm, VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppUnormBlockIMG, VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppUnormBlockIMG, VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppUnormBlockIMG, VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppUnormBlockIMG, VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppSrgbBlockIMG, VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG, VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG, VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG, VULKAN_HPP_NAMESPACE::Format::eR16G16Sfixed5NV, VULKAN_HPP_NAMESPACE::Format::eR10X6UintPack16ARM, VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Uint2Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6B10X6A10X6Uint4Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eR12X4UintPack16ARM, VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Uint2Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4B12X4A12X4Uint4Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eR14X2UintPack16ARM, VULKAN_HPP_NAMESPACE::Format::eR14X2G14X2Uint2Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eR14X2G14X2B14X2A14X2Uint4Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eR14X2UnormPack16ARM, VULKAN_HPP_NAMESPACE::Format::eR14X2G14X2Unorm2Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eR14X2G14X2B14X2A14X2Unorm4Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eG14X2B14X2R14X22Plane420Unorm3Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eG14X2B14X2R14X22Plane422Unorm3Pack16ARM }; + static std::vector allFormats = { VULKAN_HPP_NAMESPACE::Format::eR4G4UnormPack8, VULKAN_HPP_NAMESPACE::Format::eR4G4B4A4UnormPack16, VULKAN_HPP_NAMESPACE::Format::eB4G4R4A4UnormPack16, VULKAN_HPP_NAMESPACE::Format::eR5G6B5UnormPack16, VULKAN_HPP_NAMESPACE::Format::eB5G6R5UnormPack16, VULKAN_HPP_NAMESPACE::Format::eR5G5B5A1UnormPack16, VULKAN_HPP_NAMESPACE::Format::eB5G5R5A1UnormPack16, VULKAN_HPP_NAMESPACE::Format::eA1R5G5B5UnormPack16, VULKAN_HPP_NAMESPACE::Format::eR8Unorm, VULKAN_HPP_NAMESPACE::Format::eR8Snorm, VULKAN_HPP_NAMESPACE::Format::eR8Uscaled, VULKAN_HPP_NAMESPACE::Format::eR8Sscaled, VULKAN_HPP_NAMESPACE::Format::eR8Uint, VULKAN_HPP_NAMESPACE::Format::eR8Sint, VULKAN_HPP_NAMESPACE::Format::eR8Srgb, VULKAN_HPP_NAMESPACE::Format::eR8G8Unorm, VULKAN_HPP_NAMESPACE::Format::eR8G8Snorm, VULKAN_HPP_NAMESPACE::Format::eR8G8Uscaled, VULKAN_HPP_NAMESPACE::Format::eR8G8Sscaled, VULKAN_HPP_NAMESPACE::Format::eR8G8Uint, VULKAN_HPP_NAMESPACE::Format::eR8G8Sint, VULKAN_HPP_NAMESPACE::Format::eR8G8Srgb, VULKAN_HPP_NAMESPACE::Format::eR8G8B8Unorm, VULKAN_HPP_NAMESPACE::Format::eR8G8B8Snorm, VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uscaled, VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sscaled, VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uint, VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sint, VULKAN_HPP_NAMESPACE::Format::eR8G8B8Srgb, VULKAN_HPP_NAMESPACE::Format::eB8G8R8Unorm, VULKAN_HPP_NAMESPACE::Format::eB8G8R8Snorm, VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uscaled, VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sscaled, VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uint, VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sint, VULKAN_HPP_NAMESPACE::Format::eB8G8R8Srgb, VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Unorm, VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Snorm, VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uscaled, VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sscaled, VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uint, VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sint, VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Srgb, VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Unorm, VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Snorm, VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uscaled, VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sscaled, VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uint, VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sint, VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Srgb, VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UnormPack32, VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SnormPack32, VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UscaledPack32, VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SscaledPack32, VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UintPack32, VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SintPack32, VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SrgbPack32, VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UnormPack32, VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SnormPack32, VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UscaledPack32, VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SscaledPack32, VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UintPack32, VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SintPack32, VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UnormPack32, VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SnormPack32, VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UscaledPack32, VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SscaledPack32, VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UintPack32, VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SintPack32, VULKAN_HPP_NAMESPACE::Format::eR16Unorm, VULKAN_HPP_NAMESPACE::Format::eR16Snorm, VULKAN_HPP_NAMESPACE::Format::eR16Uscaled, VULKAN_HPP_NAMESPACE::Format::eR16Sscaled, VULKAN_HPP_NAMESPACE::Format::eR16Uint, VULKAN_HPP_NAMESPACE::Format::eR16Sint, VULKAN_HPP_NAMESPACE::Format::eR16Sfloat, VULKAN_HPP_NAMESPACE::Format::eR16G16Unorm, VULKAN_HPP_NAMESPACE::Format::eR16G16Snorm, VULKAN_HPP_NAMESPACE::Format::eR16G16Uscaled, VULKAN_HPP_NAMESPACE::Format::eR16G16Sscaled, VULKAN_HPP_NAMESPACE::Format::eR16G16Uint, VULKAN_HPP_NAMESPACE::Format::eR16G16Sint, VULKAN_HPP_NAMESPACE::Format::eR16G16Sfloat, VULKAN_HPP_NAMESPACE::Format::eR16G16B16Unorm, VULKAN_HPP_NAMESPACE::Format::eR16G16B16Snorm, VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uscaled, VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sscaled, VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uint, VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sint, VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sfloat, VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Unorm, VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Snorm, VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uscaled, VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sscaled, VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uint, VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sint, VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sfloat, VULKAN_HPP_NAMESPACE::Format::eR32Uint, VULKAN_HPP_NAMESPACE::Format::eR32Sint, VULKAN_HPP_NAMESPACE::Format::eR32Sfloat, VULKAN_HPP_NAMESPACE::Format::eR32G32Uint, VULKAN_HPP_NAMESPACE::Format::eR32G32Sint, VULKAN_HPP_NAMESPACE::Format::eR32G32Sfloat, VULKAN_HPP_NAMESPACE::Format::eR32G32B32Uint, VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sint, VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sfloat, VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Uint, VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sint, VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sfloat, VULKAN_HPP_NAMESPACE::Format::eR64Uint, VULKAN_HPP_NAMESPACE::Format::eR64Sint, VULKAN_HPP_NAMESPACE::Format::eR64Sfloat, VULKAN_HPP_NAMESPACE::Format::eR64G64Uint, VULKAN_HPP_NAMESPACE::Format::eR64G64Sint, VULKAN_HPP_NAMESPACE::Format::eR64G64Sfloat, VULKAN_HPP_NAMESPACE::Format::eR64G64B64Uint, VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sint, VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sfloat, VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Uint, VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sint, VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sfloat, VULKAN_HPP_NAMESPACE::Format::eB10G11R11UfloatPack32, VULKAN_HPP_NAMESPACE::Format::eE5B9G9R9UfloatPack32, VULKAN_HPP_NAMESPACE::Format::eD16Unorm, VULKAN_HPP_NAMESPACE::Format::eX8D24UnormPack32, VULKAN_HPP_NAMESPACE::Format::eD32Sfloat, VULKAN_HPP_NAMESPACE::Format::eS8Uint, VULKAN_HPP_NAMESPACE::Format::eD16UnormS8Uint, VULKAN_HPP_NAMESPACE::Format::eD24UnormS8Uint, VULKAN_HPP_NAMESPACE::Format::eD32SfloatS8Uint, VULKAN_HPP_NAMESPACE::Format::eBc1RgbUnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc1RgbSrgbBlock, VULKAN_HPP_NAMESPACE::Format::eBc1RgbaUnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc1RgbaSrgbBlock, VULKAN_HPP_NAMESPACE::Format::eBc2UnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc2SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eBc3UnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc3SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eBc4UnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc4SnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc5UnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc5SnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc6HUfloatBlock, VULKAN_HPP_NAMESPACE::Format::eBc6HSfloatBlock, VULKAN_HPP_NAMESPACE::Format::eBc7UnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc7SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8UnormBlock, VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1UnormBlock, VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8UnormBlock, VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eEacR11UnormBlock, VULKAN_HPP_NAMESPACE::Format::eEacR11SnormBlock, VULKAN_HPP_NAMESPACE::Format::eEacR11G11UnormBlock, VULKAN_HPP_NAMESPACE::Format::eEacR11G11SnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc4x4UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc4x4SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc5x4UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc5x4SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc5x5UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc5x5SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc6x5UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc6x5SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc6x6UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc6x6SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x5UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x5SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x6UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x6SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x8UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x8SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x5UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x5SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x6UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x6SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x8UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x8SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x10UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x10SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc12x10UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc12x10SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc12x12UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc12x12SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eG8B8G8R8422Unorm, VULKAN_HPP_NAMESPACE::Format::eB8G8R8G8422Unorm, VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm, VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm, VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm, VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm, VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm, VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16, VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Unorm2Pack16, VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6B10X6A10X6Unorm4Pack16, VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16, VULKAN_HPP_NAMESPACE::Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16, VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16, VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Unorm2Pack16, VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4B12X4A12X4Unorm4Pack16, VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16, VULKAN_HPP_NAMESPACE::Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16, VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG16B16G16R16422Unorm, VULKAN_HPP_NAMESPACE::Format::eB16G16R16G16422Unorm, VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm, VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm, VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm, VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm, VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm, VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444Unorm, VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444Unorm, VULKAN_HPP_NAMESPACE::Format::eA4R4G4B4UnormPack16, VULKAN_HPP_NAMESPACE::Format::eA4B4G4R4UnormPack16, VULKAN_HPP_NAMESPACE::Format::eAstc4x4SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc5x4SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc5x5SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc6x5SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc6x6SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x5SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x6SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x8SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x5SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x6SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x8SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x10SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc12x10SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc12x12SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eA1B5G5R5UnormPack16, VULKAN_HPP_NAMESPACE::Format::eA8Unorm, VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppUnormBlockIMG, VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppUnormBlockIMG, VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppUnormBlockIMG, VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppUnormBlockIMG, VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppSrgbBlockIMG, VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG, VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG, VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG, VULKAN_HPP_NAMESPACE::Format::eR8BoolARM, VULKAN_HPP_NAMESPACE::Format::eR16G16Sfixed5NV, VULKAN_HPP_NAMESPACE::Format::eR10X6UintPack16ARM, VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Uint2Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6B10X6A10X6Uint4Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eR12X4UintPack16ARM, VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Uint2Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4B12X4A12X4Uint4Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eR14X2UintPack16ARM, VULKAN_HPP_NAMESPACE::Format::eR14X2G14X2Uint2Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eR14X2G14X2B14X2A14X2Uint4Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eR14X2UnormPack16ARM, VULKAN_HPP_NAMESPACE::Format::eR14X2G14X2Unorm2Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eR14X2G14X2B14X2A14X2Unorm4Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eG14X2B14X2R14X22Plane420Unorm3Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eG14X2B14X2R14X22Plane422Unorm3Pack16ARM }; return allFormats; } // Get all formats with a color component VULKAN_HPP_INLINE std::vector const & getColorFormats() { - static std::vector colorFormats = { VULKAN_HPP_NAMESPACE::Format::eR4G4UnormPack8, VULKAN_HPP_NAMESPACE::Format::eR4G4B4A4UnormPack16, VULKAN_HPP_NAMESPACE::Format::eB4G4R4A4UnormPack16, VULKAN_HPP_NAMESPACE::Format::eR5G6B5UnormPack16, VULKAN_HPP_NAMESPACE::Format::eB5G6R5UnormPack16, VULKAN_HPP_NAMESPACE::Format::eR5G5B5A1UnormPack16, VULKAN_HPP_NAMESPACE::Format::eB5G5R5A1UnormPack16, VULKAN_HPP_NAMESPACE::Format::eA1R5G5B5UnormPack16, VULKAN_HPP_NAMESPACE::Format::eR8Unorm, VULKAN_HPP_NAMESPACE::Format::eR8Snorm, VULKAN_HPP_NAMESPACE::Format::eR8Uscaled, VULKAN_HPP_NAMESPACE::Format::eR8Sscaled, VULKAN_HPP_NAMESPACE::Format::eR8Uint, VULKAN_HPP_NAMESPACE::Format::eR8Sint, VULKAN_HPP_NAMESPACE::Format::eR8Srgb, VULKAN_HPP_NAMESPACE::Format::eR8G8Unorm, VULKAN_HPP_NAMESPACE::Format::eR8G8Snorm, VULKAN_HPP_NAMESPACE::Format::eR8G8Uscaled, VULKAN_HPP_NAMESPACE::Format::eR8G8Sscaled, VULKAN_HPP_NAMESPACE::Format::eR8G8Uint, VULKAN_HPP_NAMESPACE::Format::eR8G8Sint, VULKAN_HPP_NAMESPACE::Format::eR8G8Srgb, VULKAN_HPP_NAMESPACE::Format::eR8G8B8Unorm, VULKAN_HPP_NAMESPACE::Format::eR8G8B8Snorm, VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uscaled, VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sscaled, VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uint, VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sint, VULKAN_HPP_NAMESPACE::Format::eR8G8B8Srgb, VULKAN_HPP_NAMESPACE::Format::eB8G8R8Unorm, VULKAN_HPP_NAMESPACE::Format::eB8G8R8Snorm, VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uscaled, VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sscaled, VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uint, VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sint, VULKAN_HPP_NAMESPACE::Format::eB8G8R8Srgb, VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Unorm, VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Snorm, VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uscaled, VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sscaled, VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uint, VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sint, VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Srgb, VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Unorm, VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Snorm, VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uscaled, VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sscaled, VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uint, VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sint, VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Srgb, VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UnormPack32, VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SnormPack32, VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UscaledPack32, VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SscaledPack32, VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UintPack32, VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SintPack32, VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SrgbPack32, VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UnormPack32, VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SnormPack32, VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UscaledPack32, VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SscaledPack32, VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UintPack32, VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SintPack32, VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UnormPack32, VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SnormPack32, VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UscaledPack32, VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SscaledPack32, VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UintPack32, VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SintPack32, VULKAN_HPP_NAMESPACE::Format::eR16Unorm, VULKAN_HPP_NAMESPACE::Format::eR16Snorm, VULKAN_HPP_NAMESPACE::Format::eR16Uscaled, VULKAN_HPP_NAMESPACE::Format::eR16Sscaled, VULKAN_HPP_NAMESPACE::Format::eR16Uint, VULKAN_HPP_NAMESPACE::Format::eR16Sint, VULKAN_HPP_NAMESPACE::Format::eR16Sfloat, VULKAN_HPP_NAMESPACE::Format::eR16G16Unorm, VULKAN_HPP_NAMESPACE::Format::eR16G16Snorm, VULKAN_HPP_NAMESPACE::Format::eR16G16Uscaled, VULKAN_HPP_NAMESPACE::Format::eR16G16Sscaled, VULKAN_HPP_NAMESPACE::Format::eR16G16Uint, VULKAN_HPP_NAMESPACE::Format::eR16G16Sint, VULKAN_HPP_NAMESPACE::Format::eR16G16Sfloat, VULKAN_HPP_NAMESPACE::Format::eR16G16B16Unorm, VULKAN_HPP_NAMESPACE::Format::eR16G16B16Snorm, VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uscaled, VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sscaled, VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uint, VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sint, VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sfloat, VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Unorm, VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Snorm, VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uscaled, VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sscaled, VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uint, VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sint, VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sfloat, VULKAN_HPP_NAMESPACE::Format::eR32Uint, VULKAN_HPP_NAMESPACE::Format::eR32Sint, VULKAN_HPP_NAMESPACE::Format::eR32Sfloat, VULKAN_HPP_NAMESPACE::Format::eR32G32Uint, VULKAN_HPP_NAMESPACE::Format::eR32G32Sint, VULKAN_HPP_NAMESPACE::Format::eR32G32Sfloat, VULKAN_HPP_NAMESPACE::Format::eR32G32B32Uint, VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sint, VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sfloat, VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Uint, VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sint, VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sfloat, VULKAN_HPP_NAMESPACE::Format::eR64Uint, VULKAN_HPP_NAMESPACE::Format::eR64Sint, VULKAN_HPP_NAMESPACE::Format::eR64Sfloat, VULKAN_HPP_NAMESPACE::Format::eR64G64Uint, VULKAN_HPP_NAMESPACE::Format::eR64G64Sint, VULKAN_HPP_NAMESPACE::Format::eR64G64Sfloat, VULKAN_HPP_NAMESPACE::Format::eR64G64B64Uint, VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sint, VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sfloat, VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Uint, VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sint, VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sfloat, VULKAN_HPP_NAMESPACE::Format::eB10G11R11UfloatPack32, VULKAN_HPP_NAMESPACE::Format::eE5B9G9R9UfloatPack32, VULKAN_HPP_NAMESPACE::Format::eBc1RgbUnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc1RgbSrgbBlock, VULKAN_HPP_NAMESPACE::Format::eBc1RgbaUnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc1RgbaSrgbBlock, VULKAN_HPP_NAMESPACE::Format::eBc2UnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc2SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eBc3UnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc3SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eBc4UnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc4SnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc5UnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc5SnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc6HUfloatBlock, VULKAN_HPP_NAMESPACE::Format::eBc6HSfloatBlock, VULKAN_HPP_NAMESPACE::Format::eBc7UnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc7SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8UnormBlock, VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1UnormBlock, VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8UnormBlock, VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eEacR11UnormBlock, VULKAN_HPP_NAMESPACE::Format::eEacR11SnormBlock, VULKAN_HPP_NAMESPACE::Format::eEacR11G11UnormBlock, VULKAN_HPP_NAMESPACE::Format::eEacR11G11SnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc4x4UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc4x4SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc5x4UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc5x4SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc5x5UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc5x5SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc6x5UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc6x5SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc6x6UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc6x6SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x5UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x5SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x6UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x6SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x8UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x8SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x5UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x5SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x6UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x6SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x8UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x8SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x10UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x10SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc12x10UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc12x10SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc12x12UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc12x12SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eG8B8G8R8422Unorm, VULKAN_HPP_NAMESPACE::Format::eB8G8R8G8422Unorm, VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm, VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm, VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm, VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm, VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm, VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16, VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Unorm2Pack16, VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6B10X6A10X6Unorm4Pack16, VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16, VULKAN_HPP_NAMESPACE::Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16, VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16, VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Unorm2Pack16, VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4B12X4A12X4Unorm4Pack16, VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16, VULKAN_HPP_NAMESPACE::Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16, VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG16B16G16R16422Unorm, VULKAN_HPP_NAMESPACE::Format::eB16G16R16G16422Unorm, VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm, VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm, VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm, VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm, VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm, VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444Unorm, VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444Unorm, VULKAN_HPP_NAMESPACE::Format::eA4R4G4B4UnormPack16, VULKAN_HPP_NAMESPACE::Format::eA4B4G4R4UnormPack16, VULKAN_HPP_NAMESPACE::Format::eAstc4x4SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc5x4SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc5x5SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc6x5SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc6x6SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x5SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x6SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x8SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x5SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x6SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x8SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x10SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc12x10SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc12x12SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eA1B5G5R5UnormPack16, VULKAN_HPP_NAMESPACE::Format::eA8Unorm, VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppUnormBlockIMG, VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppUnormBlockIMG, VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppUnormBlockIMG, VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppUnormBlockIMG, VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppSrgbBlockIMG, VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG, VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG, VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG, VULKAN_HPP_NAMESPACE::Format::eR16G16Sfixed5NV, VULKAN_HPP_NAMESPACE::Format::eR10X6UintPack16ARM, VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Uint2Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6B10X6A10X6Uint4Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eR12X4UintPack16ARM, VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Uint2Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4B12X4A12X4Uint4Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eR14X2UintPack16ARM, VULKAN_HPP_NAMESPACE::Format::eR14X2G14X2Uint2Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eR14X2G14X2B14X2A14X2Uint4Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eR14X2UnormPack16ARM, VULKAN_HPP_NAMESPACE::Format::eR14X2G14X2Unorm2Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eR14X2G14X2B14X2A14X2Unorm4Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eG14X2B14X2R14X22Plane420Unorm3Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eG14X2B14X2R14X22Plane422Unorm3Pack16ARM }; + static std::vector colorFormats = { VULKAN_HPP_NAMESPACE::Format::eR4G4UnormPack8, VULKAN_HPP_NAMESPACE::Format::eR4G4B4A4UnormPack16, VULKAN_HPP_NAMESPACE::Format::eB4G4R4A4UnormPack16, VULKAN_HPP_NAMESPACE::Format::eR5G6B5UnormPack16, VULKAN_HPP_NAMESPACE::Format::eB5G6R5UnormPack16, VULKAN_HPP_NAMESPACE::Format::eR5G5B5A1UnormPack16, VULKAN_HPP_NAMESPACE::Format::eB5G5R5A1UnormPack16, VULKAN_HPP_NAMESPACE::Format::eA1R5G5B5UnormPack16, VULKAN_HPP_NAMESPACE::Format::eR8Unorm, VULKAN_HPP_NAMESPACE::Format::eR8Snorm, VULKAN_HPP_NAMESPACE::Format::eR8Uscaled, VULKAN_HPP_NAMESPACE::Format::eR8Sscaled, VULKAN_HPP_NAMESPACE::Format::eR8Uint, VULKAN_HPP_NAMESPACE::Format::eR8Sint, VULKAN_HPP_NAMESPACE::Format::eR8Srgb, VULKAN_HPP_NAMESPACE::Format::eR8G8Unorm, VULKAN_HPP_NAMESPACE::Format::eR8G8Snorm, VULKAN_HPP_NAMESPACE::Format::eR8G8Uscaled, VULKAN_HPP_NAMESPACE::Format::eR8G8Sscaled, VULKAN_HPP_NAMESPACE::Format::eR8G8Uint, VULKAN_HPP_NAMESPACE::Format::eR8G8Sint, VULKAN_HPP_NAMESPACE::Format::eR8G8Srgb, VULKAN_HPP_NAMESPACE::Format::eR8G8B8Unorm, VULKAN_HPP_NAMESPACE::Format::eR8G8B8Snorm, VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uscaled, VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sscaled, VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uint, VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sint, VULKAN_HPP_NAMESPACE::Format::eR8G8B8Srgb, VULKAN_HPP_NAMESPACE::Format::eB8G8R8Unorm, VULKAN_HPP_NAMESPACE::Format::eB8G8R8Snorm, VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uscaled, VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sscaled, VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uint, VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sint, VULKAN_HPP_NAMESPACE::Format::eB8G8R8Srgb, VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Unorm, VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Snorm, VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uscaled, VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sscaled, VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uint, VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sint, VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Srgb, VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Unorm, VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Snorm, VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uscaled, VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sscaled, VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uint, VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sint, VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Srgb, VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UnormPack32, VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SnormPack32, VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UscaledPack32, VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SscaledPack32, VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UintPack32, VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SintPack32, VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SrgbPack32, VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UnormPack32, VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SnormPack32, VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UscaledPack32, VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SscaledPack32, VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UintPack32, VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SintPack32, VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UnormPack32, VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SnormPack32, VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UscaledPack32, VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SscaledPack32, VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UintPack32, VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SintPack32, VULKAN_HPP_NAMESPACE::Format::eR16Unorm, VULKAN_HPP_NAMESPACE::Format::eR16Snorm, VULKAN_HPP_NAMESPACE::Format::eR16Uscaled, VULKAN_HPP_NAMESPACE::Format::eR16Sscaled, VULKAN_HPP_NAMESPACE::Format::eR16Uint, VULKAN_HPP_NAMESPACE::Format::eR16Sint, VULKAN_HPP_NAMESPACE::Format::eR16Sfloat, VULKAN_HPP_NAMESPACE::Format::eR16G16Unorm, VULKAN_HPP_NAMESPACE::Format::eR16G16Snorm, VULKAN_HPP_NAMESPACE::Format::eR16G16Uscaled, VULKAN_HPP_NAMESPACE::Format::eR16G16Sscaled, VULKAN_HPP_NAMESPACE::Format::eR16G16Uint, VULKAN_HPP_NAMESPACE::Format::eR16G16Sint, VULKAN_HPP_NAMESPACE::Format::eR16G16Sfloat, VULKAN_HPP_NAMESPACE::Format::eR16G16B16Unorm, VULKAN_HPP_NAMESPACE::Format::eR16G16B16Snorm, VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uscaled, VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sscaled, VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uint, VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sint, VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sfloat, VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Unorm, VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Snorm, VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uscaled, VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sscaled, VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uint, VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sint, VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sfloat, VULKAN_HPP_NAMESPACE::Format::eR32Uint, VULKAN_HPP_NAMESPACE::Format::eR32Sint, VULKAN_HPP_NAMESPACE::Format::eR32Sfloat, VULKAN_HPP_NAMESPACE::Format::eR32G32Uint, VULKAN_HPP_NAMESPACE::Format::eR32G32Sint, VULKAN_HPP_NAMESPACE::Format::eR32G32Sfloat, VULKAN_HPP_NAMESPACE::Format::eR32G32B32Uint, VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sint, VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sfloat, VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Uint, VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sint, VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sfloat, VULKAN_HPP_NAMESPACE::Format::eR64Uint, VULKAN_HPP_NAMESPACE::Format::eR64Sint, VULKAN_HPP_NAMESPACE::Format::eR64Sfloat, VULKAN_HPP_NAMESPACE::Format::eR64G64Uint, VULKAN_HPP_NAMESPACE::Format::eR64G64Sint, VULKAN_HPP_NAMESPACE::Format::eR64G64Sfloat, VULKAN_HPP_NAMESPACE::Format::eR64G64B64Uint, VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sint, VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sfloat, VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Uint, VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sint, VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sfloat, VULKAN_HPP_NAMESPACE::Format::eB10G11R11UfloatPack32, VULKAN_HPP_NAMESPACE::Format::eE5B9G9R9UfloatPack32, VULKAN_HPP_NAMESPACE::Format::eBc1RgbUnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc1RgbSrgbBlock, VULKAN_HPP_NAMESPACE::Format::eBc1RgbaUnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc1RgbaSrgbBlock, VULKAN_HPP_NAMESPACE::Format::eBc2UnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc2SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eBc3UnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc3SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eBc4UnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc4SnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc5UnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc5SnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc6HUfloatBlock, VULKAN_HPP_NAMESPACE::Format::eBc6HSfloatBlock, VULKAN_HPP_NAMESPACE::Format::eBc7UnormBlock, VULKAN_HPP_NAMESPACE::Format::eBc7SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8UnormBlock, VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1UnormBlock, VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8UnormBlock, VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eEacR11UnormBlock, VULKAN_HPP_NAMESPACE::Format::eEacR11SnormBlock, VULKAN_HPP_NAMESPACE::Format::eEacR11G11UnormBlock, VULKAN_HPP_NAMESPACE::Format::eEacR11G11SnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc4x4UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc4x4SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc5x4UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc5x4SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc5x5UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc5x5SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc6x5UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc6x5SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc6x6UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc6x6SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x5UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x5SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x6UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x6SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x8UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x8SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x5UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x5SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x6UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x6SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x8UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x8SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x10UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x10SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc12x10UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc12x10SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eAstc12x12UnormBlock, VULKAN_HPP_NAMESPACE::Format::eAstc12x12SrgbBlock, VULKAN_HPP_NAMESPACE::Format::eG8B8G8R8422Unorm, VULKAN_HPP_NAMESPACE::Format::eB8G8R8G8422Unorm, VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm, VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm, VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm, VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm, VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm, VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16, VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Unorm2Pack16, VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6B10X6A10X6Unorm4Pack16, VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16, VULKAN_HPP_NAMESPACE::Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16, VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16, VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Unorm2Pack16, VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4B12X4A12X4Unorm4Pack16, VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16, VULKAN_HPP_NAMESPACE::Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16, VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG16B16G16R16422Unorm, VULKAN_HPP_NAMESPACE::Format::eB16G16R16G16422Unorm, VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm, VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm, VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm, VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm, VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm, VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444Unorm, VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16, VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444Unorm, VULKAN_HPP_NAMESPACE::Format::eA4R4G4B4UnormPack16, VULKAN_HPP_NAMESPACE::Format::eA4B4G4R4UnormPack16, VULKAN_HPP_NAMESPACE::Format::eAstc4x4SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc5x4SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc5x5SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc6x5SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc6x6SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x5SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x6SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc8x8SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x5SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x6SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x8SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc10x10SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc12x10SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eAstc12x12SfloatBlock, VULKAN_HPP_NAMESPACE::Format::eA1B5G5R5UnormPack16, VULKAN_HPP_NAMESPACE::Format::eA8Unorm, VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppUnormBlockIMG, VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppUnormBlockIMG, VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppUnormBlockIMG, VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppUnormBlockIMG, VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppSrgbBlockIMG, VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG, VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG, VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG, VULKAN_HPP_NAMESPACE::Format::eR8BoolARM, VULKAN_HPP_NAMESPACE::Format::eR16G16Sfixed5NV, VULKAN_HPP_NAMESPACE::Format::eR10X6UintPack16ARM, VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Uint2Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6B10X6A10X6Uint4Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eR12X4UintPack16ARM, VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Uint2Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4B12X4A12X4Uint4Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eR14X2UintPack16ARM, VULKAN_HPP_NAMESPACE::Format::eR14X2G14X2Uint2Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eR14X2G14X2B14X2A14X2Uint4Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eR14X2UnormPack16ARM, VULKAN_HPP_NAMESPACE::Format::eR14X2G14X2Unorm2Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eR14X2G14X2B14X2A14X2Unorm4Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eG14X2B14X2R14X22Plane420Unorm3Pack16ARM, VULKAN_HPP_NAMESPACE::Format::eG14X2B14X2R14X22Plane422Unorm3Pack16ARM }; return colorFormats; } @@ -8064,6 +8085,7 @@ namespace VULKAN_HPP_NAMESPACE case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG: case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG: case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: + case VULKAN_HPP_NAMESPACE::Format::eR8BoolARM: case VULKAN_HPP_NAMESPACE::Format::eR16G16Sfixed5NV: case VULKAN_HPP_NAMESPACE::Format::eR10X6UintPack16ARM: case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Uint2Pack16ARM: @@ -9093,6 +9115,7 @@ namespace VULKAN_HPP_NAMESPACE case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG: return 1; case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG: return 1; case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return 1; + case VULKAN_HPP_NAMESPACE::Format::eR8BoolARM: return 1; case VULKAN_HPP_NAMESPACE::Format::eR16G16Sfixed5NV: return 1; case VULKAN_HPP_NAMESPACE::Format::eR10X6UintPack16ARM: return 1; case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Uint2Pack16ARM: return 1; diff --git a/include/vulkan/vulkan_funcs.hpp b/include/vulkan/vulkan_funcs.hpp index de158d5..e7ed958 100644 --- a/include/vulkan/vulkan_funcs.hpp +++ b/include/vulkan/vulkan_funcs.hpp @@ -22973,6 +22973,446 @@ VULKAN_HPP_ASSERT( d.vkCmdSetCoverageModulationTableNV && "Function ( m_commandBuffer ), static_cast( coverageReductionMode ) ); } + //=== VK_ARM_tensors === + + + // wrapper function for command vkCreateTensorARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateTensorARM.html + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createTensorARM( const VULKAN_HPP_NAMESPACE::TensorCreateInfoARM * pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, VULKAN_HPP_NAMESPACE::TensorARM * pTensor, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + return static_cast( d.vkCreateTensorARM( static_cast( m_device ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pTensor ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkCreateTensorARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateTensorARM.html + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type Device::createTensorARM( const VULKAN_HPP_NAMESPACE::TensorCreateInfoARM & createInfo, Optional allocator, Dispatch const & d ) const + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); +#if (VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 ) +VULKAN_HPP_ASSERT( d.vkCreateTensorARM && "Function requires " ); +#endif + + + VULKAN_HPP_NAMESPACE::TensorARM tensor; + VULKAN_HPP_NAMESPACE::Result result = static_cast( d.vkCreateTensorARM( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &tensor ) ) ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createTensorARM" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( tensor ) ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + // wrapper function for command vkCreateTensorARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateTensorARM.html + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::createTensorARMUnique( const VULKAN_HPP_NAMESPACE::TensorCreateInfoARM & createInfo, Optional allocator, Dispatch const & d ) const + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); +#if (VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 ) +VULKAN_HPP_ASSERT( d.vkCreateTensorARM && "Function requires " ); +#endif + + + VULKAN_HPP_NAMESPACE::TensorARM tensor; + VULKAN_HPP_NAMESPACE::Result result = static_cast( d.vkCreateTensorARM( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &tensor ) ) ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createTensorARMUnique" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, UniqueHandle( tensor, detail::ObjectDestroy( *this, allocator, d ) ) ); + } +# endif /* VULKAN_HPP_NO_SMART_HANDLE */ +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + + // wrapper function for command vkDestroyTensorARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyTensorARM.html + template + VULKAN_HPP_INLINE void Device::destroyTensorARM( VULKAN_HPP_NAMESPACE::TensorARM tensor, const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + d.vkDestroyTensorARM( static_cast( m_device ), static_cast( tensor ), reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkDestroyTensorARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyTensorARM.html + template + VULKAN_HPP_INLINE void Device::destroyTensorARM( VULKAN_HPP_NAMESPACE::TensorARM tensor, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); +#if (VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 ) +VULKAN_HPP_ASSERT( d.vkDestroyTensorARM && "Function requires " ); +#endif + + + + d.vkDestroyTensorARM( m_device, static_cast( tensor ), reinterpret_cast( static_cast( allocator ) ) ); + + + + } +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + + // wrapper function for command vkDestroyTensorARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyTensorARM.html + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::TensorARM tensor, const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + d.vkDestroyTensorARM( static_cast( m_device ), static_cast( tensor ), reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkDestroyTensorARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyTensorARM.html + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::TensorARM tensor, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); +#if (VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 ) +VULKAN_HPP_ASSERT( d.vkDestroyTensorARM && "Function requires " ); +#endif + + + + d.vkDestroyTensorARM( m_device, static_cast( tensor ), reinterpret_cast( static_cast( allocator ) ) ); + + + + } +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + + // wrapper function for command vkCreateTensorViewARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateTensorViewARM.html + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createTensorViewARM( const VULKAN_HPP_NAMESPACE::TensorViewCreateInfoARM * pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, VULKAN_HPP_NAMESPACE::TensorViewARM * pView, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + return static_cast( d.vkCreateTensorViewARM( static_cast( m_device ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pView ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkCreateTensorViewARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateTensorViewARM.html + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type Device::createTensorViewARM( const VULKAN_HPP_NAMESPACE::TensorViewCreateInfoARM & createInfo, Optional allocator, Dispatch const & d ) const + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); +#if (VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 ) +VULKAN_HPP_ASSERT( d.vkCreateTensorViewARM && "Function requires " ); +#endif + + + VULKAN_HPP_NAMESPACE::TensorViewARM view; + VULKAN_HPP_NAMESPACE::Result result = static_cast( d.vkCreateTensorViewARM( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &view ) ) ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createTensorViewARM" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( view ) ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + // wrapper function for command vkCreateTensorViewARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateTensorViewARM.html + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::createTensorViewARMUnique( const VULKAN_HPP_NAMESPACE::TensorViewCreateInfoARM & createInfo, Optional allocator, Dispatch const & d ) const + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); +#if (VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 ) +VULKAN_HPP_ASSERT( d.vkCreateTensorViewARM && "Function requires " ); +#endif + + + VULKAN_HPP_NAMESPACE::TensorViewARM view; + VULKAN_HPP_NAMESPACE::Result result = static_cast( d.vkCreateTensorViewARM( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &view ) ) ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createTensorViewARMUnique" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, UniqueHandle( view, detail::ObjectDestroy( *this, allocator, d ) ) ); + } +# endif /* VULKAN_HPP_NO_SMART_HANDLE */ +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + + // wrapper function for command vkDestroyTensorViewARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyTensorViewARM.html + template + VULKAN_HPP_INLINE void Device::destroyTensorViewARM( VULKAN_HPP_NAMESPACE::TensorViewARM tensorView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + d.vkDestroyTensorViewARM( static_cast( m_device ), static_cast( tensorView ), reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkDestroyTensorViewARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyTensorViewARM.html + template + VULKAN_HPP_INLINE void Device::destroyTensorViewARM( VULKAN_HPP_NAMESPACE::TensorViewARM tensorView, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); +#if (VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 ) +VULKAN_HPP_ASSERT( d.vkDestroyTensorViewARM && "Function requires " ); +#endif + + + + d.vkDestroyTensorViewARM( m_device, static_cast( tensorView ), reinterpret_cast( static_cast( allocator ) ) ); + + + + } +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + + // wrapper function for command vkDestroyTensorViewARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyTensorViewARM.html + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::TensorViewARM tensorView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + d.vkDestroyTensorViewARM( static_cast( m_device ), static_cast( tensorView ), reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkDestroyTensorViewARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyTensorViewARM.html + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::TensorViewARM tensorView, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); +#if (VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 ) +VULKAN_HPP_ASSERT( d.vkDestroyTensorViewARM && "Function requires " ); +#endif + + + + d.vkDestroyTensorViewARM( m_device, static_cast( tensorView ), reinterpret_cast( static_cast( allocator ) ) ); + + + + } +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + + // wrapper function for command vkGetTensorMemoryRequirementsARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorMemoryRequirementsARM.html + template + VULKAN_HPP_INLINE void Device::getTensorMemoryRequirementsARM( const VULKAN_HPP_NAMESPACE::TensorMemoryRequirementsInfoARM * pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + d.vkGetTensorMemoryRequirementsARM( static_cast( m_device ), reinterpret_cast( pInfo ), reinterpret_cast( pMemoryRequirements ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkGetTensorMemoryRequirementsARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorMemoryRequirementsARM.html + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getTensorMemoryRequirementsARM( const VULKAN_HPP_NAMESPACE::TensorMemoryRequirementsInfoARM & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); +#if (VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 ) +VULKAN_HPP_ASSERT( d.vkGetTensorMemoryRequirementsARM && "Function requires " ); +#endif + + + VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; + d.vkGetTensorMemoryRequirementsARM( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); + + + return memoryRequirements; + } + + // wrapper function for command vkGetTensorMemoryRequirementsARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorMemoryRequirementsARM.html + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain Device::getTensorMemoryRequirementsARM( const VULKAN_HPP_NAMESPACE::TensorMemoryRequirementsInfoARM & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); +#if (VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 ) +VULKAN_HPP_ASSERT( d.vkGetTensorMemoryRequirementsARM && "Function requires " ); +#endif + + + VULKAN_HPP_NAMESPACE::StructureChain structureChain; + VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get(); + d.vkGetTensorMemoryRequirementsARM( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); + + + return structureChain; + } +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + + // wrapper function for command vkBindTensorMemoryARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindTensorMemoryARM.html + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindTensorMemoryARM( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindTensorMemoryInfoARM * pBindInfos, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + return static_cast( d.vkBindTensorMemoryARM( static_cast( m_device ), bindInfoCount, reinterpret_cast( pBindInfos ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkBindTensorMemoryARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindTensorMemoryARM.html + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::bindTensorMemoryARM( VULKAN_HPP_NAMESPACE::ArrayProxy const & bindInfos, Dispatch const & d ) const + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); +#if (VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 ) +VULKAN_HPP_ASSERT( d.vkBindTensorMemoryARM && "Function requires " ); +#endif + + + + VULKAN_HPP_NAMESPACE::Result result = static_cast( d.vkBindTensorMemoryARM( m_device, bindInfos.size(), reinterpret_cast( bindInfos.data() ) ) ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindTensorMemoryARM" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); + } +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + + // wrapper function for command vkGetDeviceTensorMemoryRequirementsARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceTensorMemoryRequirementsARM.html + template + VULKAN_HPP_INLINE void Device::getTensorMemoryRequirementsARM( const VULKAN_HPP_NAMESPACE::DeviceTensorMemoryRequirementsARM * pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + d.vkGetDeviceTensorMemoryRequirementsARM( static_cast( m_device ), reinterpret_cast( pInfo ), reinterpret_cast( pMemoryRequirements ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkGetDeviceTensorMemoryRequirementsARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceTensorMemoryRequirementsARM.html + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getTensorMemoryRequirementsARM( const VULKAN_HPP_NAMESPACE::DeviceTensorMemoryRequirementsARM & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); +#if (VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 ) +VULKAN_HPP_ASSERT( d.vkGetDeviceTensorMemoryRequirementsARM && "Function requires " ); +#endif + + + VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; + d.vkGetDeviceTensorMemoryRequirementsARM( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); + + + return memoryRequirements; + } + + // wrapper function for command vkGetDeviceTensorMemoryRequirementsARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceTensorMemoryRequirementsARM.html + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain Device::getTensorMemoryRequirementsARM( const VULKAN_HPP_NAMESPACE::DeviceTensorMemoryRequirementsARM & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); +#if (VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 ) +VULKAN_HPP_ASSERT( d.vkGetDeviceTensorMemoryRequirementsARM && "Function requires " ); +#endif + + + VULKAN_HPP_NAMESPACE::StructureChain structureChain; + VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get(); + d.vkGetDeviceTensorMemoryRequirementsARM( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); + + + return structureChain; + } +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + + // wrapper function for command vkCmdCopyTensorARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyTensorARM.html + template + VULKAN_HPP_INLINE void CommandBuffer::copyTensorARM( const VULKAN_HPP_NAMESPACE::CopyTensorInfoARM * pCopyTensorInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + d.vkCmdCopyTensorARM( static_cast( m_commandBuffer ), reinterpret_cast( pCopyTensorInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkCmdCopyTensorARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyTensorARM.html + template + VULKAN_HPP_INLINE void CommandBuffer::copyTensorARM( const VULKAN_HPP_NAMESPACE::CopyTensorInfoARM & copyTensorInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); +#if (VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 ) +VULKAN_HPP_ASSERT( d.vkCmdCopyTensorARM && "Function requires " ); +#endif + + + + d.vkCmdCopyTensorARM( m_commandBuffer, reinterpret_cast( ©TensorInfo ) ); + + + + } +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + + // wrapper function for command vkGetPhysicalDeviceExternalTensorPropertiesARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceExternalTensorPropertiesARM.html + template + VULKAN_HPP_INLINE void PhysicalDevice::getExternalTensorPropertiesARM( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalTensorInfoARM * pExternalTensorInfo, VULKAN_HPP_NAMESPACE::ExternalTensorPropertiesARM * pExternalTensorProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + d.vkGetPhysicalDeviceExternalTensorPropertiesARM( static_cast( m_physicalDevice ), reinterpret_cast( pExternalTensorInfo ), reinterpret_cast( pExternalTensorProperties ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkGetPhysicalDeviceExternalTensorPropertiesARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceExternalTensorPropertiesARM.html + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalTensorPropertiesARM PhysicalDevice::getExternalTensorPropertiesARM( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalTensorInfoARM & externalTensorInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); +#if (VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 ) +VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceExternalTensorPropertiesARM && "Function requires " ); +#endif + + + VULKAN_HPP_NAMESPACE::ExternalTensorPropertiesARM externalTensorProperties; + d.vkGetPhysicalDeviceExternalTensorPropertiesARM( m_physicalDevice, reinterpret_cast( &externalTensorInfo ), reinterpret_cast( &externalTensorProperties ) ); + + + return externalTensorProperties; + } +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + + // wrapper function for command vkGetTensorOpaqueCaptureDescriptorDataARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorOpaqueCaptureDescriptorDataARM.html + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getTensorOpaqueCaptureDescriptorDataARM( const VULKAN_HPP_NAMESPACE::TensorCaptureDescriptorDataInfoARM * pInfo, void * pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + return static_cast( d.vkGetTensorOpaqueCaptureDescriptorDataARM( static_cast( m_device ), reinterpret_cast( pInfo ), pData ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkGetTensorOpaqueCaptureDescriptorDataARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorOpaqueCaptureDescriptorDataARM.html + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type Device::getTensorOpaqueCaptureDescriptorDataARM( const VULKAN_HPP_NAMESPACE::TensorCaptureDescriptorDataInfoARM & info, Dispatch const & d ) const + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); +#if (VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 ) +VULKAN_HPP_ASSERT( d.vkGetTensorOpaqueCaptureDescriptorDataARM && "Function requires " ); +#endif + + + DataType data; + VULKAN_HPP_NAMESPACE::Result result = static_cast( d.vkGetTensorOpaqueCaptureDescriptorDataARM( m_device, reinterpret_cast( &info ), &data ) ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getTensorOpaqueCaptureDescriptorDataARM" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) ); + } +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + + // wrapper function for command vkGetTensorViewOpaqueCaptureDescriptorDataARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorViewOpaqueCaptureDescriptorDataARM.html + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getTensorViewOpaqueCaptureDescriptorDataARM( const VULKAN_HPP_NAMESPACE::TensorViewCaptureDescriptorDataInfoARM * pInfo, void * pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + return static_cast( d.vkGetTensorViewOpaqueCaptureDescriptorDataARM( static_cast( m_device ), reinterpret_cast( pInfo ), pData ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkGetTensorViewOpaqueCaptureDescriptorDataARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorViewOpaqueCaptureDescriptorDataARM.html + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type Device::getTensorViewOpaqueCaptureDescriptorDataARM( const VULKAN_HPP_NAMESPACE::TensorViewCaptureDescriptorDataInfoARM & info, Dispatch const & d ) const + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); +#if (VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 ) +VULKAN_HPP_ASSERT( d.vkGetTensorViewOpaqueCaptureDescriptorDataARM && "Function requires " ); +#endif + + + DataType data; + VULKAN_HPP_NAMESPACE::Result result = static_cast( d.vkGetTensorViewOpaqueCaptureDescriptorDataARM( m_device, reinterpret_cast( &info ), &data ) ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getTensorViewOpaqueCaptureDescriptorDataARM" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) ); + } +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + //=== VK_EXT_shader_module_identifier === @@ -23423,6 +23863,36 @@ VULKAN_HPP_ASSERT( d.vkAntiLagUpdateAMD && "Function requir + } +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + //=== VK_KHR_present_wait2 === + + + // wrapper function for command vkWaitForPresent2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkWaitForPresent2KHR.html + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitForPresent2KHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::PresentWait2InfoKHR * pPresentWait2Info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + return static_cast( d.vkWaitForPresent2KHR( static_cast( m_device ), static_cast( swapchain ), reinterpret_cast( pPresentWait2Info ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkWaitForPresent2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkWaitForPresent2KHR.html + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Device::waitForPresent2KHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::PresentWait2InfoKHR & presentWait2Info, Dispatch const & d ) const + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); +#if (VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 ) +VULKAN_HPP_ASSERT( d.vkWaitForPresent2KHR && "Function requires " ); +#endif + + + + VULKAN_HPP_NAMESPACE::Result result = static_cast( d.vkWaitForPresent2KHR( m_device, static_cast( swapchain ), reinterpret_cast( &presentWait2Info ) ) ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitForPresent2KHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } ); + + return static_cast( result ); } #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ diff --git a/include/vulkan/vulkan_handles.hpp b/include/vulkan/vulkan_handles.hpp index 610a5c6..7493d45 100644 --- a/include/vulkan/vulkan_handles.hpp +++ b/include/vulkan/vulkan_handles.hpp @@ -1697,6 +1697,32 @@ namespace VULKAN_HPP_NAMESPACE struct DirectDriverLoadingInfoLUNARG; struct DirectDriverLoadingListLUNARG; + //=== VK_ARM_tensors === + struct TensorDescriptionARM; + struct TensorCreateInfoARM; + struct TensorViewCreateInfoARM; + struct TensorMemoryRequirementsInfoARM; + struct BindTensorMemoryInfoARM; + struct WriteDescriptorSetTensorARM; + struct TensorFormatPropertiesARM; + struct PhysicalDeviceTensorPropertiesARM; + struct TensorMemoryBarrierARM; + struct TensorDependencyInfoARM; + struct PhysicalDeviceTensorFeaturesARM; + struct DeviceTensorMemoryRequirementsARM; + struct CopyTensorInfoARM; + struct TensorCopyARM; + struct MemoryDedicatedAllocateInfoTensorARM; + struct PhysicalDeviceExternalTensorInfoARM; + struct ExternalTensorPropertiesARM; + struct ExternalMemoryTensorCreateInfoARM; + struct PhysicalDeviceDescriptorBufferTensorFeaturesARM; + struct PhysicalDeviceDescriptorBufferTensorPropertiesARM; + struct DescriptorGetTensorInfoARM; + struct TensorCaptureDescriptorDataInfoARM; + struct TensorViewCaptureDescriptorDataInfoARM; + struct FrameBoundaryTensorsARM; + //=== VK_EXT_shader_module_identifier === struct PhysicalDeviceShaderModuleIdentifierFeaturesEXT; struct PhysicalDeviceShaderModuleIdentifierPropertiesEXT; @@ -1731,6 +1757,16 @@ namespace VULKAN_HPP_NAMESPACE struct AntiLagDataAMD; struct AntiLagPresentationInfoAMD; + //=== VK_KHR_present_id2 === + struct SurfaceCapabilitiesPresentId2KHR; + struct PresentId2KHR; + struct PhysicalDevicePresentId2FeaturesKHR; + + //=== VK_KHR_present_wait2 === + struct SurfaceCapabilitiesPresentWait2KHR; + struct PhysicalDevicePresentWait2FeaturesKHR; + struct PresentWait2InfoKHR; + //=== VK_KHR_ray_tracing_position_fetch === struct PhysicalDeviceRayTracingPositionFetchFeaturesKHR; @@ -1851,6 +1887,12 @@ namespace VULKAN_HPP_NAMESPACE struct VideoEncodeAV1RateControlInfoKHR; struct VideoEncodeAV1RateControlLayerInfoKHR; + //=== VK_KHR_video_decode_vp9 === + struct PhysicalDeviceVideoDecodeVP9FeaturesKHR; + struct VideoDecodeVP9ProfileInfoKHR; + struct VideoDecodeVP9CapabilitiesKHR; + struct VideoDecodeVP9PictureInfoKHR; + //=== VK_KHR_video_maintenance1 === struct PhysicalDeviceVideoMaintenance1FeaturesKHR; struct VideoInlineQueryInfoKHR; @@ -1878,6 +1920,10 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_EXT_attachment_feedback_loop_dynamic_state === struct PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT; + //=== VK_KHR_unified_image_layouts === + struct PhysicalDeviceUnifiedImageLayoutsFeaturesKHR; + struct AttachmentFeedbackLoopInfoEXT; + #if defined( VK_USE_PLATFORM_SCREEN_QNX ) //=== VK_QNX_external_memory_screen_buffer === struct ScreenBufferPropertiesQNX; @@ -1952,6 +1998,9 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_EXT_shader_replicated_composites === struct PhysicalDeviceShaderReplicatedCompositesFeaturesEXT; + //=== VK_EXT_shader_float8 === + struct PhysicalDeviceShaderFloat8FeaturesEXT; + //=== VK_NV_ray_tracing_validation === struct PhysicalDeviceRayTracingValidationFeaturesNV; @@ -2024,6 +2073,11 @@ namespace VULKAN_HPP_NAMESPACE struct PipelineViewportDepthClampControlCreateInfoEXT; struct DepthClampRangeEXT; + //=== VK_KHR_maintenance9 === + struct PhysicalDeviceMaintenance9FeaturesKHR; + struct PhysicalDeviceMaintenance9PropertiesKHR; + struct QueueFamilyOwnershipTransferPropertiesKHR; + //=== VK_KHR_video_maintenance2 === struct PhysicalDeviceVideoMaintenance2FeaturesKHR; struct VideoDecodeH264InlineSessionParametersInfoKHR; @@ -2180,6 +2234,10 @@ class BufferCollectionFUCHSIA; //=== VK_EXT_opacity_micromap === class MicromapEXT; + //=== VK_ARM_tensors === +class TensorARM; +class TensorViewARM; + //=== VK_NV_optical_flow === class OpticalFlowSessionNV; @@ -2565,6 +2623,22 @@ class IndirectExecutionSetEXT; }; using UniqueMicromapEXT = UniqueHandle; + //=== VK_ARM_tensors === + template + class UniqueHandleTraits + { + public: + using deleter = detail::ObjectDestroy; + }; + using UniqueTensorARM = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = detail::ObjectDestroy; + }; + using UniqueTensorViewARM = UniqueHandle; + //=== VK_NV_optical_flow === template class UniqueHandleTraits @@ -6849,6 +6923,18 @@ class IndirectExecutionSetEXT; template void setCoverageReductionModeNV( VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + //=== VK_ARM_tensors === + + + // wrapper function for command vkCmdCopyTensorARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyTensorARM.html + template + void copyTensorARM( const VULKAN_HPP_NAMESPACE::CopyTensorInfoARM * pCopyTensorInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkCmdCopyTensorARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyTensorARM.html + template + void copyTensorARM( const VULKAN_HPP_NAMESPACE::CopyTensorInfoARM & copyTensorInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + //=== VK_NV_optical_flow === @@ -9302,6 +9388,188 @@ class IndirectExecutionSetEXT; static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; }; + // wrapper class for handle VkTensorARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorARM.html + class TensorARM + { + public: + using CType = VkTensorARM; + using NativeType = VkTensorARM; + + static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eTensorARM; + static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; + + public: + TensorARM() VULKAN_HPP_NOEXCEPT {} // = default; - try to workaround a compiler issue + TensorARM( TensorARM const & rhs ) = default; + TensorARM & operator=( TensorARM const & rhs ) = default; + +#if !defined(VULKAN_HPP_HANDLES_MOVE_EXCHANGE) + TensorARM( TensorARM && rhs ) = default; + TensorARM & operator=( TensorARM && rhs ) = default; +#else + TensorARM( TensorARM && rhs ) VULKAN_HPP_NOEXCEPT + : m_tensorARM( VULKAN_HPP_NAMESPACE::exchange( rhs.m_tensorARM, {} ) ) + {} + TensorARM & operator=( TensorARM && rhs ) VULKAN_HPP_NOEXCEPT + { + m_tensorARM = VULKAN_HPP_NAMESPACE::exchange( rhs.m_tensorARM, {} ); + return *this; + } +#endif + + VULKAN_HPP_CONSTEXPR TensorARM( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + {} + VULKAN_HPP_TYPESAFE_EXPLICIT TensorARM( VkTensorARM tensorARM ) VULKAN_HPP_NOEXCEPT + : m_tensorARM( tensorARM ) + {} + +#if ( VULKAN_HPP_TYPESAFE_CONVERSION == 1 ) + TensorARM & operator=(VkTensorARM tensorARM) VULKAN_HPP_NOEXCEPT + { + m_tensorARM = tensorARM; + return *this; + } +#endif + + TensorARM & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + { + m_tensorARM = {}; + return *this; + } + + + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkTensorARM() const VULKAN_HPP_NOEXCEPT + { + return m_tensorARM; + } + + explicit operator bool() const VULKAN_HPP_NOEXCEPT + { + return m_tensorARM != VK_NULL_HANDLE; + } + + bool operator!() const VULKAN_HPP_NOEXCEPT + { + return m_tensorARM == VK_NULL_HANDLE; + } + + private: + VkTensorARM m_tensorARM = {}; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::TensorARM; + }; + + + +#if ( VK_USE_64_BIT_PTR_DEFINES == 1 ) + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::TensorARM; + }; +#endif + + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + + // wrapper class for handle VkTensorViewARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorViewARM.html + class TensorViewARM + { + public: + using CType = VkTensorViewARM; + using NativeType = VkTensorViewARM; + + static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eTensorViewARM; + static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; + + public: + TensorViewARM() VULKAN_HPP_NOEXCEPT {} // = default; - try to workaround a compiler issue + TensorViewARM( TensorViewARM const & rhs ) = default; + TensorViewARM & operator=( TensorViewARM const & rhs ) = default; + +#if !defined(VULKAN_HPP_HANDLES_MOVE_EXCHANGE) + TensorViewARM( TensorViewARM && rhs ) = default; + TensorViewARM & operator=( TensorViewARM && rhs ) = default; +#else + TensorViewARM( TensorViewARM && rhs ) VULKAN_HPP_NOEXCEPT + : m_tensorViewARM( VULKAN_HPP_NAMESPACE::exchange( rhs.m_tensorViewARM, {} ) ) + {} + TensorViewARM & operator=( TensorViewARM && rhs ) VULKAN_HPP_NOEXCEPT + { + m_tensorViewARM = VULKAN_HPP_NAMESPACE::exchange( rhs.m_tensorViewARM, {} ); + return *this; + } +#endif + + VULKAN_HPP_CONSTEXPR TensorViewARM( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + {} + VULKAN_HPP_TYPESAFE_EXPLICIT TensorViewARM( VkTensorViewARM tensorViewARM ) VULKAN_HPP_NOEXCEPT + : m_tensorViewARM( tensorViewARM ) + {} + +#if ( VULKAN_HPP_TYPESAFE_CONVERSION == 1 ) + TensorViewARM & operator=(VkTensorViewARM tensorViewARM) VULKAN_HPP_NOEXCEPT + { + m_tensorViewARM = tensorViewARM; + return *this; + } +#endif + + TensorViewARM & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + { + m_tensorViewARM = {}; + return *this; + } + + + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkTensorViewARM() const VULKAN_HPP_NOEXCEPT + { + return m_tensorViewARM; + } + + explicit operator bool() const VULKAN_HPP_NOEXCEPT + { + return m_tensorViewARM != VK_NULL_HANDLE; + } + + bool operator!() const VULKAN_HPP_NOEXCEPT + { + return m_tensorViewARM == VK_NULL_HANDLE; + } + + private: + VkTensorViewARM m_tensorViewARM = {}; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::TensorViewARM; + }; + + + +#if ( VK_USE_64_BIT_PTR_DEFINES == 1 ) + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::TensorViewARM; + }; +#endif + + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + // wrapper class for handle VkValidationCacheEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkValidationCacheEXT.html class ValidationCacheEXT { @@ -13795,6 +14063,134 @@ class IndirectExecutionSetEXT; VULKAN_HPP_NAMESPACE::DeviceAddress getPipelineIndirectAddressNV( const VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + //=== VK_ARM_tensors === + + + // wrapper function for command vkCreateTensorARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateTensorARM.html + template + VULKAN_HPP_NODISCARD Result createTensorARM( const VULKAN_HPP_NAMESPACE::TensorCreateInfoARM * pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, VULKAN_HPP_NAMESPACE::TensorARM * pTensor, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkCreateTensorARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateTensorARM.html + template + VULKAN_HPP_NODISCARD typename ResultValueType::type createTensorARM( const VULKAN_HPP_NAMESPACE::TensorCreateInfoARM & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + // wrapper function for command vkCreateTensorARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateTensorARM.html + template + VULKAN_HPP_NODISCARD typename ResultValueType>::type createTensorARMUnique( const VULKAN_HPP_NAMESPACE::TensorCreateInfoARM & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /* VULKAN_HPP_NO_SMART_HANDLE */ +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + + // wrapper function for command vkDestroyTensorARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyTensorARM.html + template + void destroyTensorARM( VULKAN_HPP_NAMESPACE::TensorARM tensor, const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkDestroyTensorARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyTensorARM.html + template + void destroyTensorARM( VULKAN_HPP_NAMESPACE::TensorARM tensor VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + + // wrapper function for command vkDestroyTensorARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyTensorARM.html + template + void destroy( VULKAN_HPP_NAMESPACE::TensorARM tensor, const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkDestroyTensorARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyTensorARM.html + template + void destroy( VULKAN_HPP_NAMESPACE::TensorARM tensor, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + + // wrapper function for command vkCreateTensorViewARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateTensorViewARM.html + template + VULKAN_HPP_NODISCARD Result createTensorViewARM( const VULKAN_HPP_NAMESPACE::TensorViewCreateInfoARM * pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, VULKAN_HPP_NAMESPACE::TensorViewARM * pView, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkCreateTensorViewARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateTensorViewARM.html + template + VULKAN_HPP_NODISCARD typename ResultValueType::type createTensorViewARM( const VULKAN_HPP_NAMESPACE::TensorViewCreateInfoARM & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + // wrapper function for command vkCreateTensorViewARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateTensorViewARM.html + template + VULKAN_HPP_NODISCARD typename ResultValueType>::type createTensorViewARMUnique( const VULKAN_HPP_NAMESPACE::TensorViewCreateInfoARM & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /* VULKAN_HPP_NO_SMART_HANDLE */ +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + + // wrapper function for command vkDestroyTensorViewARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyTensorViewARM.html + template + void destroyTensorViewARM( VULKAN_HPP_NAMESPACE::TensorViewARM tensorView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkDestroyTensorViewARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyTensorViewARM.html + template + void destroyTensorViewARM( VULKAN_HPP_NAMESPACE::TensorViewARM tensorView VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + + // wrapper function for command vkDestroyTensorViewARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyTensorViewARM.html + template + void destroy( VULKAN_HPP_NAMESPACE::TensorViewARM tensorView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkDestroyTensorViewARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyTensorViewARM.html + template + void destroy( VULKAN_HPP_NAMESPACE::TensorViewARM tensorView, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + + // wrapper function for command vkGetTensorMemoryRequirementsARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorMemoryRequirementsARM.html + template + void getTensorMemoryRequirementsARM( const VULKAN_HPP_NAMESPACE::TensorMemoryRequirementsInfoARM * pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkGetTensorMemoryRequirementsARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorMemoryRequirementsARM.html + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getTensorMemoryRequirementsARM( const VULKAN_HPP_NAMESPACE::TensorMemoryRequirementsInfoARM & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + // wrapper function for command vkGetTensorMemoryRequirementsARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorMemoryRequirementsARM.html + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain getTensorMemoryRequirementsARM( const VULKAN_HPP_NAMESPACE::TensorMemoryRequirementsInfoARM & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + + // wrapper function for command vkBindTensorMemoryARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindTensorMemoryARM.html + template + VULKAN_HPP_NODISCARD Result bindTensorMemoryARM( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindTensorMemoryInfoARM * pBindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkBindTensorMemoryARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindTensorMemoryARM.html + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type bindTensorMemoryARM( VULKAN_HPP_NAMESPACE::ArrayProxy const & bindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + + // wrapper function for command vkGetDeviceTensorMemoryRequirementsARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceTensorMemoryRequirementsARM.html + template + void getTensorMemoryRequirementsARM( const VULKAN_HPP_NAMESPACE::DeviceTensorMemoryRequirementsARM * pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkGetDeviceTensorMemoryRequirementsARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceTensorMemoryRequirementsARM.html + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getTensorMemoryRequirementsARM( const VULKAN_HPP_NAMESPACE::DeviceTensorMemoryRequirementsARM & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + // wrapper function for command vkGetDeviceTensorMemoryRequirementsARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceTensorMemoryRequirementsARM.html + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain getTensorMemoryRequirementsARM( const VULKAN_HPP_NAMESPACE::DeviceTensorMemoryRequirementsARM & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + + // wrapper function for command vkGetTensorOpaqueCaptureDescriptorDataARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorOpaqueCaptureDescriptorDataARM.html + template + VULKAN_HPP_NODISCARD Result getTensorOpaqueCaptureDescriptorDataARM( const VULKAN_HPP_NAMESPACE::TensorCaptureDescriptorDataInfoARM * pInfo, void * pData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkGetTensorOpaqueCaptureDescriptorDataARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorOpaqueCaptureDescriptorDataARM.html + template + VULKAN_HPP_NODISCARD typename ResultValueType::type getTensorOpaqueCaptureDescriptorDataARM( const VULKAN_HPP_NAMESPACE::TensorCaptureDescriptorDataInfoARM & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + + // wrapper function for command vkGetTensorViewOpaqueCaptureDescriptorDataARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorViewOpaqueCaptureDescriptorDataARM.html + template + VULKAN_HPP_NODISCARD Result getTensorViewOpaqueCaptureDescriptorDataARM( const VULKAN_HPP_NAMESPACE::TensorViewCaptureDescriptorDataInfoARM * pInfo, void * pData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkGetTensorViewOpaqueCaptureDescriptorDataARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorViewOpaqueCaptureDescriptorDataARM.html + template + VULKAN_HPP_NODISCARD typename ResultValueType::type getTensorViewOpaqueCaptureDescriptorDataARM( const VULKAN_HPP_NAMESPACE::TensorViewCaptureDescriptorDataInfoARM & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + //=== VK_EXT_shader_module_identifier === @@ -13915,6 +14311,18 @@ class IndirectExecutionSetEXT; void antiLagUpdateAMD( const VULKAN_HPP_NAMESPACE::AntiLagDataAMD & data, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + //=== VK_KHR_present_wait2 === + + + // wrapper function for command vkWaitForPresent2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkWaitForPresent2KHR.html + template + VULKAN_HPP_NODISCARD Result waitForPresent2KHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::PresentWait2InfoKHR * pPresentWait2Info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkWaitForPresent2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkWaitForPresent2KHR.html + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result waitForPresent2KHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::PresentWait2InfoKHR & presentWait2Info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + //=== VK_EXT_shader_object === @@ -15564,6 +15972,18 @@ class IndirectExecutionSetEXT; #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ #endif /*VK_USE_PLATFORM_SCREEN_QNX*/ + //=== VK_ARM_tensors === + + + // wrapper function for command vkGetPhysicalDeviceExternalTensorPropertiesARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceExternalTensorPropertiesARM.html + template + void getExternalTensorPropertiesARM( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalTensorInfoARM * pExternalTensorInfo, VULKAN_HPP_NAMESPACE::ExternalTensorPropertiesARM * pExternalTensorProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkGetPhysicalDeviceExternalTensorPropertiesARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceExternalTensorPropertiesARM.html + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalTensorPropertiesARM getExternalTensorPropertiesARM( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalTensorInfoARM & externalTensorInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + //=== VK_NV_optical_flow === diff --git a/include/vulkan/vulkan_hash.hpp b/include/vulkan/vulkan_hash.hpp index fb69f5d..6f7d550 100644 --- a/include/vulkan/vulkan_hash.hpp +++ b/include/vulkan/vulkan_hash.hpp @@ -458,6 +458,24 @@ namespace std } }; + //=== VK_ARM_tensors === + + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::TensorARM const & tensorARM) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}(static_cast(tensorARM)); + } + }; + + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::TensorViewARM const & tensorViewARM) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}(static_cast(tensorViewARM)); + } + }; + //=== VK_NV_optical_flow === template <> struct hash @@ -1112,6 +1130,18 @@ template <> struct hash } }; + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::AttachmentFeedbackLoopInfoEXT const & attachmentFeedbackLoopInfoEXT) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, attachmentFeedbackLoopInfoEXT.sType ); + VULKAN_HPP_HASH_COMBINE( seed, attachmentFeedbackLoopInfoEXT.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, attachmentFeedbackLoopInfoEXT.feedbackLoopEnable ); + return seed; + } + }; + template <> struct hash { std::size_t operator()(VULKAN_HPP_NAMESPACE::AttachmentReference const & attachmentReference) const VULKAN_HPP_NOEXCEPT @@ -1562,6 +1592,20 @@ template <> struct hash } }; + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::BindTensorMemoryInfoARM const & bindTensorMemoryInfoARM) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, bindTensorMemoryInfoARM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, bindTensorMemoryInfoARM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, bindTensorMemoryInfoARM.tensor ); + VULKAN_HPP_HASH_COMBINE( seed, bindTensorMemoryInfoARM.memory ); + VULKAN_HPP_HASH_COMBINE( seed, bindTensorMemoryInfoARM.memoryOffset ); + return seed; + } + }; + template <> struct hash { std::size_t operator()(VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandEXT const & bindVertexBufferIndirectCommandEXT) const VULKAN_HPP_NOEXCEPT @@ -2881,6 +2925,36 @@ template <> struct hash } }; + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::TensorCopyARM const & tensorCopyARM) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, tensorCopyARM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, tensorCopyARM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, tensorCopyARM.dimensionCount ); + VULKAN_HPP_HASH_COMBINE( seed, tensorCopyARM.pSrcOffset ); + VULKAN_HPP_HASH_COMBINE( seed, tensorCopyARM.pDstOffset ); + VULKAN_HPP_HASH_COMBINE( seed, tensorCopyARM.pExtent ); + return seed; + } + }; + + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::CopyTensorInfoARM const & copyTensorInfoARM) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, copyTensorInfoARM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, copyTensorInfoARM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, copyTensorInfoARM.srcTensor ); + VULKAN_HPP_HASH_COMBINE( seed, copyTensorInfoARM.dstTensor ); + VULKAN_HPP_HASH_COMBINE( seed, copyTensorInfoARM.regionCount ); + VULKAN_HPP_HASH_COMBINE( seed, copyTensorInfoARM.pRegions ); + return seed; + } + }; + template <> struct hash { std::size_t operator()(VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX const & cuFunctionCreateInfoNVX) const VULKAN_HPP_NOEXCEPT @@ -3401,6 +3475,18 @@ template <> struct hash } }; + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::DescriptorGetTensorInfoARM const & descriptorGetTensorInfoARM) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, descriptorGetTensorInfoARM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, descriptorGetTensorInfoARM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, descriptorGetTensorInfoARM.tensorView ); + return seed; + } + }; + template <> struct hash { std::size_t operator()(VULKAN_HPP_NAMESPACE::DescriptorPoolSize const & descriptorPoolSize) const VULKAN_HPP_NOEXCEPT @@ -4125,6 +4211,51 @@ template <> struct hash } }; + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::TensorDescriptionARM const & tensorDescriptionARM) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, tensorDescriptionARM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, tensorDescriptionARM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, tensorDescriptionARM.tiling ); + VULKAN_HPP_HASH_COMBINE( seed, tensorDescriptionARM.format ); + VULKAN_HPP_HASH_COMBINE( seed, tensorDescriptionARM.dimensionCount ); + VULKAN_HPP_HASH_COMBINE( seed, tensorDescriptionARM.pDimensions ); + VULKAN_HPP_HASH_COMBINE( seed, tensorDescriptionARM.pStrides ); + VULKAN_HPP_HASH_COMBINE( seed, tensorDescriptionARM.usage ); + return seed; + } + }; + + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::TensorCreateInfoARM const & tensorCreateInfoARM) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, tensorCreateInfoARM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, tensorCreateInfoARM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, tensorCreateInfoARM.flags ); + VULKAN_HPP_HASH_COMBINE( seed, tensorCreateInfoARM.pDescription ); + VULKAN_HPP_HASH_COMBINE( seed, tensorCreateInfoARM.sharingMode ); + VULKAN_HPP_HASH_COMBINE( seed, tensorCreateInfoARM.queueFamilyIndexCount ); + VULKAN_HPP_HASH_COMBINE( seed, tensorCreateInfoARM.pQueueFamilyIndices ); + return seed; + } + }; + + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::DeviceTensorMemoryRequirementsARM const & deviceTensorMemoryRequirementsARM) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, deviceTensorMemoryRequirementsARM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, deviceTensorMemoryRequirementsARM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, deviceTensorMemoryRequirementsARM.pCreateInfo ); + return seed; + } + }; + template <> struct hash { std::size_t operator()(VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG const & directDriverLoadingInfoLUNARG) const VULKAN_HPP_NOEXCEPT @@ -5035,6 +5166,18 @@ template <> struct hash } }; + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::ExternalMemoryTensorCreateInfoARM const & externalMemoryTensorCreateInfoARM) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, externalMemoryTensorCreateInfoARM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, externalMemoryTensorCreateInfoARM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, externalMemoryTensorCreateInfoARM.handleTypes ); + return seed; + } + }; + template <> struct hash { std::size_t operator()(VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties const & externalSemaphoreProperties) const VULKAN_HPP_NOEXCEPT @@ -5049,6 +5192,18 @@ template <> struct hash } }; + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::ExternalTensorPropertiesARM const & externalTensorPropertiesARM) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, externalTensorPropertiesARM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, externalTensorPropertiesARM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, externalTensorPropertiesARM.externalMemoryProperties ); + return seed; + } + }; + template <> struct hash { std::size_t operator()(VULKAN_HPP_NAMESPACE::FenceCreateInfo const & fenceCreateInfo) const VULKAN_HPP_NOEXCEPT @@ -5173,6 +5328,19 @@ template <> struct hash } }; + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::FrameBoundaryTensorsARM const & frameBoundaryTensorsARM) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryTensorsARM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryTensorsARM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryTensorsARM.tensorCount ); + VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryTensorsARM.pTensors ); + return seed; + } + }; + template <> struct hash { std::size_t operator()(VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo const & framebufferAttachmentImageInfo) const VULKAN_HPP_NOEXCEPT @@ -6882,6 +7050,18 @@ template <> struct hash } }; + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfoTensorARM const & memoryDedicatedAllocateInfoTensorARM) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, memoryDedicatedAllocateInfoTensorARM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, memoryDedicatedAllocateInfoTensorARM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, memoryDedicatedAllocateInfoTensorARM.tensor ); + return seed; + } + }; + template <> struct hash { std::size_t operator()(VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements const & memoryDedicatedRequirements) const VULKAN_HPP_NOEXCEPT @@ -8406,6 +8586,32 @@ template <> struct hash struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferTensorFeaturesARM const & physicalDeviceDescriptorBufferTensorFeaturesARM) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferTensorFeaturesARM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferTensorFeaturesARM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferTensorFeaturesARM.descriptorBufferTensorDescriptors ); + return seed; + } + }; + + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferTensorPropertiesARM const & physicalDeviceDescriptorBufferTensorPropertiesARM) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferTensorPropertiesARM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferTensorPropertiesARM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferTensorPropertiesARM.tensorCaptureReplayDescriptorDataSize ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferTensorPropertiesARM.tensorViewCaptureReplayDescriptorDataSize ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferTensorPropertiesARM.tensorDescriptorSize ); + return seed; + } + }; + template <> struct hash { std::size_t operator()(VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures const & physicalDeviceDescriptorIndexingFeatures) const VULKAN_HPP_NOEXCEPT @@ -8964,6 +9170,20 @@ template <> struct hash struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalTensorInfoARM const & physicalDeviceExternalTensorInfoARM) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalTensorInfoARM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalTensorInfoARM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalTensorInfoARM.flags ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalTensorInfoARM.pDescription ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalTensorInfoARM.handleType ); + return seed; + } + }; + template <> struct hash { std::size_t operator()(VULKAN_HPP_NAMESPACE::PhysicalDeviceFaultFeaturesEXT const & physicalDeviceFaultFeaturesEXT) const VULKAN_HPP_NOEXCEPT @@ -10094,6 +10314,31 @@ template <> struct hash struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance9FeaturesKHR const & physicalDeviceMaintenance9FeaturesKHR) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance9FeaturesKHR.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance9FeaturesKHR.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance9FeaturesKHR.maintenance9 ); + return seed; + } + }; + + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance9PropertiesKHR const & physicalDeviceMaintenance9PropertiesKHR) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance9PropertiesKHR.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance9PropertiesKHR.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance9PropertiesKHR.image2DViewOf3DSparse ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance9PropertiesKHR.defaultVertexAttributeValue ); + return seed; + } + }; + template <> struct hash { std::size_t operator()(VULKAN_HPP_NAMESPACE::PhysicalDeviceMapMemoryPlacedFeaturesEXT const & physicalDeviceMapMemoryPlacedFeaturesEXT) const VULKAN_HPP_NOEXCEPT @@ -10809,6 +11054,18 @@ template <> struct hash struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::PhysicalDevicePresentId2FeaturesKHR const & physicalDevicePresentId2FeaturesKHR) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePresentId2FeaturesKHR.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePresentId2FeaturesKHR.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePresentId2FeaturesKHR.presentId2 ); + return seed; + } + }; + template <> struct hash { std::size_t operator()(VULKAN_HPP_NAMESPACE::PhysicalDevicePresentIdFeaturesKHR const & physicalDevicePresentIdFeaturesKHR) const VULKAN_HPP_NOEXCEPT @@ -10847,6 +11104,18 @@ template <> struct hash struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::PhysicalDevicePresentWait2FeaturesKHR const & physicalDevicePresentWait2FeaturesKHR) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePresentWait2FeaturesKHR.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePresentWait2FeaturesKHR.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePresentWait2FeaturesKHR.presentWait2 ); + return seed; + } + }; + template <> struct hash { std::size_t operator()(VULKAN_HPP_NAMESPACE::PhysicalDevicePresentWaitFeaturesKHR const & physicalDevicePresentWaitFeaturesKHR) const VULKAN_HPP_NOEXCEPT @@ -11594,6 +11863,19 @@ template <> struct hash struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat8FeaturesEXT const & physicalDeviceShaderFloat8FeaturesEXT) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderFloat8FeaturesEXT.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderFloat8FeaturesEXT.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderFloat8FeaturesEXT.shaderFloat8 ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderFloat8FeaturesEXT.shaderFloat8CooperativeMatrix ); + return seed; + } + }; + template <> struct hash { std::size_t operator()(VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloatControls2Features const & physicalDeviceShaderFloatControls2Features) const VULKAN_HPP_NOEXCEPT @@ -12059,6 +12341,47 @@ template <> struct hash struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::PhysicalDeviceTensorFeaturesARM const & physicalDeviceTensorFeaturesARM) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTensorFeaturesARM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTensorFeaturesARM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTensorFeaturesARM.tensorNonPacked ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTensorFeaturesARM.shaderTensorAccess ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTensorFeaturesARM.shaderStorageTensorArrayDynamicIndexing ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTensorFeaturesARM.shaderStorageTensorArrayNonUniformIndexing ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTensorFeaturesARM.descriptorBindingStorageTensorUpdateAfterBind ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTensorFeaturesARM.tensors ); + return seed; + } + }; + + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::PhysicalDeviceTensorPropertiesARM const & physicalDeviceTensorPropertiesARM) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTensorPropertiesARM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTensorPropertiesARM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTensorPropertiesARM.maxTensorDimensionCount ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTensorPropertiesARM.maxTensorElements ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTensorPropertiesARM.maxPerDimensionTensorElements ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTensorPropertiesARM.maxTensorStride ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTensorPropertiesARM.maxTensorSize ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTensorPropertiesARM.maxTensorShaderAccessArrayLength ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTensorPropertiesARM.maxTensorShaderAccessSize ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTensorPropertiesARM.maxDescriptorSetStorageTensors ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTensorPropertiesARM.maxPerStageDescriptorSetStorageTensors ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTensorPropertiesARM.maxDescriptorSetUpdateAfterBindStorageTensors ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTensorPropertiesARM.maxPerStageDescriptorUpdateAfterBindStorageTensors ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTensorPropertiesARM.shaderStorageTensorArrayNonUniformIndexingNative ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTensorPropertiesARM.shaderTensorSupportedStages ); + return seed; + } + }; + template <> struct hash { std::size_t operator()(VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & physicalDeviceTexelBufferAlignmentFeaturesEXT) const VULKAN_HPP_NOEXCEPT @@ -12261,6 +12584,19 @@ template <> struct hash struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::PhysicalDeviceUnifiedImageLayoutsFeaturesKHR const & physicalDeviceUnifiedImageLayoutsFeaturesKHR) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceUnifiedImageLayoutsFeaturesKHR.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceUnifiedImageLayoutsFeaturesKHR.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceUnifiedImageLayoutsFeaturesKHR.unifiedImageLayouts ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceUnifiedImageLayoutsFeaturesKHR.unifiedImageLayoutsVideo ); + return seed; + } + }; + template <> struct hash { std::size_t operator()(VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures const & physicalDeviceUniformBufferStandardLayoutFeatures) const VULKAN_HPP_NOEXCEPT @@ -12348,6 +12684,18 @@ template <> struct hash struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoDecodeVP9FeaturesKHR const & physicalDeviceVideoDecodeVP9FeaturesKHR) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVideoDecodeVP9FeaturesKHR.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVideoDecodeVP9FeaturesKHR.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVideoDecodeVP9FeaturesKHR.videoDecodeVP9 ); + return seed; + } + }; + template <> struct hash { std::size_t operator()(VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeAV1FeaturesKHR const & physicalDeviceVideoEncodeAV1FeaturesKHR) const VULKAN_HPP_NOEXCEPT @@ -13632,6 +13980,19 @@ template <> struct hash }; #endif /*VK_USE_PLATFORM_GGP*/ + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::PresentId2KHR const & presentId2KHR) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, presentId2KHR.sType ); + VULKAN_HPP_HASH_COMBINE( seed, presentId2KHR.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, presentId2KHR.swapchainCount ); + VULKAN_HPP_HASH_COMBINE( seed, presentId2KHR.pPresentIds ); + return seed; + } + }; + template <> struct hash { std::size_t operator()(VULKAN_HPP_NAMESPACE::PresentIdKHR const & presentIdKHR) const VULKAN_HPP_NOEXCEPT @@ -13722,6 +14083,19 @@ template <> struct hash } }; + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::PresentWait2InfoKHR const & presentWait2InfoKHR) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, presentWait2InfoKHR.sType ); + VULKAN_HPP_HASH_COMBINE( seed, presentWait2InfoKHR.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, presentWait2InfoKHR.presentId ); + VULKAN_HPP_HASH_COMBINE( seed, presentWait2InfoKHR.timeout ); + return seed; + } + }; + template <> struct hash { std::size_t operator()(VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo const & privateDataSlotCreateInfo) const VULKAN_HPP_NOEXCEPT @@ -13917,6 +14291,18 @@ template <> struct hash } }; + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::QueueFamilyOwnershipTransferPropertiesKHR const & queueFamilyOwnershipTransferPropertiesKHR) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, queueFamilyOwnershipTransferPropertiesKHR.sType ); + VULKAN_HPP_HASH_COMBINE( seed, queueFamilyOwnershipTransferPropertiesKHR.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, queueFamilyOwnershipTransferPropertiesKHR.optimalImageTransferToQueueFamilies ); + return seed; + } + }; + template <> struct hash { std::size_t operator()(VULKAN_HPP_NAMESPACE::QueueFamilyProperties const & queueFamilyProperties) const VULKAN_HPP_NOEXCEPT @@ -15312,6 +15698,30 @@ template <> struct hash struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesPresentId2KHR const & surfaceCapabilitiesPresentId2KHR) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesPresentId2KHR.sType ); + VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesPresentId2KHR.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesPresentId2KHR.presentId2Supported ); + return seed; + } + }; + + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesPresentWait2KHR const & surfaceCapabilitiesPresentWait2KHR) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesPresentWait2KHR.sType ); + VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesPresentWait2KHR.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesPresentWait2KHR.presentWait2Supported ); + return seed; + } + }; + template <> struct hash { std::size_t operator()(VULKAN_HPP_NAMESPACE::SurfaceFormatKHR const & surfaceFormatKHR) const VULKAN_HPP_NOEXCEPT @@ -15544,6 +15954,100 @@ template <> struct hash struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::TensorCaptureDescriptorDataInfoARM const & tensorCaptureDescriptorDataInfoARM) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, tensorCaptureDescriptorDataInfoARM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, tensorCaptureDescriptorDataInfoARM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, tensorCaptureDescriptorDataInfoARM.tensor ); + return seed; + } + }; + + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::TensorMemoryBarrierARM const & tensorMemoryBarrierARM) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, tensorMemoryBarrierARM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, tensorMemoryBarrierARM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, tensorMemoryBarrierARM.srcStageMask ); + VULKAN_HPP_HASH_COMBINE( seed, tensorMemoryBarrierARM.srcAccessMask ); + VULKAN_HPP_HASH_COMBINE( seed, tensorMemoryBarrierARM.dstStageMask ); + VULKAN_HPP_HASH_COMBINE( seed, tensorMemoryBarrierARM.dstAccessMask ); + VULKAN_HPP_HASH_COMBINE( seed, tensorMemoryBarrierARM.srcQueueFamilyIndex ); + VULKAN_HPP_HASH_COMBINE( seed, tensorMemoryBarrierARM.dstQueueFamilyIndex ); + VULKAN_HPP_HASH_COMBINE( seed, tensorMemoryBarrierARM.tensor ); + return seed; + } + }; + + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::TensorDependencyInfoARM const & tensorDependencyInfoARM) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, tensorDependencyInfoARM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, tensorDependencyInfoARM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, tensorDependencyInfoARM.tensorMemoryBarrierCount ); + VULKAN_HPP_HASH_COMBINE( seed, tensorDependencyInfoARM.pTensorMemoryBarriers ); + return seed; + } + }; + + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::TensorFormatPropertiesARM const & tensorFormatPropertiesARM) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, tensorFormatPropertiesARM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, tensorFormatPropertiesARM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, tensorFormatPropertiesARM.optimalTilingTensorFeatures ); + VULKAN_HPP_HASH_COMBINE( seed, tensorFormatPropertiesARM.linearTilingTensorFeatures ); + return seed; + } + }; + + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::TensorMemoryRequirementsInfoARM const & tensorMemoryRequirementsInfoARM) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, tensorMemoryRequirementsInfoARM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, tensorMemoryRequirementsInfoARM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, tensorMemoryRequirementsInfoARM.tensor ); + return seed; + } + }; + + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::TensorViewCaptureDescriptorDataInfoARM const & tensorViewCaptureDescriptorDataInfoARM) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, tensorViewCaptureDescriptorDataInfoARM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, tensorViewCaptureDescriptorDataInfoARM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, tensorViewCaptureDescriptorDataInfoARM.tensorView ); + return seed; + } + }; + + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::TensorViewCreateInfoARM const & tensorViewCreateInfoARM) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, tensorViewCreateInfoARM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, tensorViewCreateInfoARM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, tensorViewCreateInfoARM.flags ); + VULKAN_HPP_HASH_COMBINE( seed, tensorViewCreateInfoARM.tensor ); + VULKAN_HPP_HASH_COMBINE( seed, tensorViewCreateInfoARM.format ); + return seed; + } + }; + template <> struct hash { std::size_t operator()(VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD const & textureLODGatherFormatPropertiesAMD) const VULKAN_HPP_NOEXCEPT @@ -16134,6 +16638,49 @@ template <> struct hash } }; + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::VideoDecodeVP9CapabilitiesKHR const & videoDecodeVP9CapabilitiesKHR) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, videoDecodeVP9CapabilitiesKHR.sType ); + VULKAN_HPP_HASH_COMBINE( seed, videoDecodeVP9CapabilitiesKHR.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, videoDecodeVP9CapabilitiesKHR.maxLevel ); + return seed; + } + }; + + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::VideoDecodeVP9PictureInfoKHR const & videoDecodeVP9PictureInfoKHR) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, videoDecodeVP9PictureInfoKHR.sType ); + VULKAN_HPP_HASH_COMBINE( seed, videoDecodeVP9PictureInfoKHR.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, videoDecodeVP9PictureInfoKHR.pStdPictureInfo ); + for ( size_t i = 0; i < VK_MAX_VIDEO_VP9_REFERENCES_PER_FRAME_KHR; ++i ) + { + VULKAN_HPP_HASH_COMBINE( seed, videoDecodeVP9PictureInfoKHR.referenceNameSlotIndices[i] ); + } + VULKAN_HPP_HASH_COMBINE( seed, videoDecodeVP9PictureInfoKHR.uncompressedHeaderOffset ); + VULKAN_HPP_HASH_COMBINE( seed, videoDecodeVP9PictureInfoKHR.compressedHeaderOffset ); + VULKAN_HPP_HASH_COMBINE( seed, videoDecodeVP9PictureInfoKHR.tilesOffset ); + return seed; + } + }; + + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::VideoDecodeVP9ProfileInfoKHR const & videoDecodeVP9ProfileInfoKHR) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, videoDecodeVP9ProfileInfoKHR.sType ); + VULKAN_HPP_HASH_COMBINE( seed, videoDecodeVP9ProfileInfoKHR.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, videoDecodeVP9ProfileInfoKHR.stdProfile ); + return seed; + } + }; + template <> struct hash { std::size_t operator()(VULKAN_HPP_NAMESPACE::VideoEncodeAV1CapabilitiesKHR const & videoEncodeAV1CapabilitiesKHR) const VULKAN_HPP_NOEXCEPT @@ -17307,6 +17854,19 @@ template <> struct hash } }; + template <> struct hash + { + std::size_t operator()(VULKAN_HPP_NAMESPACE::WriteDescriptorSetTensorARM const & writeDescriptorSetTensorARM) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSetTensorARM.sType ); + VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSetTensorARM.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSetTensorARM.tensorViewCount ); + VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSetTensorARM.pTensorViews ); + return seed; + } + }; + template <> struct hash { std::size_t operator()(VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetPipelineEXT const & writeIndirectExecutionSetPipelineEXT) const VULKAN_HPP_NOEXCEPT diff --git a/include/vulkan/vulkan_raii.hpp b/include/vulkan/vulkan_raii.hpp index 8fc53a1..0396d8d 100644 --- a/include/vulkan/vulkan_raii.hpp +++ b/include/vulkan/vulkan_raii.hpp @@ -302,6 +302,9 @@ namespace VULKAN_HPP_NAMESPACE vkGetPhysicalDeviceScreenPresentationSupportQNX = PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceScreenPresentationSupportQNX" ) ); #endif /*VK_USE_PLATFORM_SCREEN_QNX*/ + //=== VK_ARM_tensors === + vkGetPhysicalDeviceExternalTensorPropertiesARM = PFN_vkGetPhysicalDeviceExternalTensorPropertiesARM( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalTensorPropertiesARM" ) ); + //=== VK_NV_optical_flow === vkGetPhysicalDeviceOpticalFlowImageFormatsNV = PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceOpticalFlowImageFormatsNV" ) ); @@ -587,6 +590,9 @@ namespace VULKAN_HPP_NAMESPACE PFN_dummy vkGetPhysicalDeviceScreenPresentationSupportQNX_placeholder = 0; #endif /*VK_USE_PLATFORM_SCREEN_QNX*/ + //=== VK_ARM_tensors === + PFN_vkGetPhysicalDeviceExternalTensorPropertiesARM vkGetPhysicalDeviceExternalTensorPropertiesARM = 0; + //=== VK_NV_optical_flow === PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV vkGetPhysicalDeviceOpticalFlowImageFormatsNV = 0; @@ -1495,6 +1501,18 @@ namespace VULKAN_HPP_NAMESPACE vkCmdSetRepresentativeFragmentTestEnableNV = PFN_vkCmdSetRepresentativeFragmentTestEnableNV( vkGetDeviceProcAddr( device, "vkCmdSetRepresentativeFragmentTestEnableNV" ) ); vkCmdSetCoverageReductionModeNV = PFN_vkCmdSetCoverageReductionModeNV( vkGetDeviceProcAddr( device, "vkCmdSetCoverageReductionModeNV" ) ); + //=== VK_ARM_tensors === + vkCreateTensorARM = PFN_vkCreateTensorARM( vkGetDeviceProcAddr( device, "vkCreateTensorARM" ) ); + vkDestroyTensorARM = PFN_vkDestroyTensorARM( vkGetDeviceProcAddr( device, "vkDestroyTensorARM" ) ); + vkCreateTensorViewARM = PFN_vkCreateTensorViewARM( vkGetDeviceProcAddr( device, "vkCreateTensorViewARM" ) ); + vkDestroyTensorViewARM = PFN_vkDestroyTensorViewARM( vkGetDeviceProcAddr( device, "vkDestroyTensorViewARM" ) ); + vkGetTensorMemoryRequirementsARM = PFN_vkGetTensorMemoryRequirementsARM( vkGetDeviceProcAddr( device, "vkGetTensorMemoryRequirementsARM" ) ); + vkBindTensorMemoryARM = PFN_vkBindTensorMemoryARM( vkGetDeviceProcAddr( device, "vkBindTensorMemoryARM" ) ); + vkGetDeviceTensorMemoryRequirementsARM = PFN_vkGetDeviceTensorMemoryRequirementsARM( vkGetDeviceProcAddr( device, "vkGetDeviceTensorMemoryRequirementsARM" ) ); + vkCmdCopyTensorARM = PFN_vkCmdCopyTensorARM( vkGetDeviceProcAddr( device, "vkCmdCopyTensorARM" ) ); + vkGetTensorOpaqueCaptureDescriptorDataARM = PFN_vkGetTensorOpaqueCaptureDescriptorDataARM( vkGetDeviceProcAddr( device, "vkGetTensorOpaqueCaptureDescriptorDataARM" ) ); + vkGetTensorViewOpaqueCaptureDescriptorDataARM = PFN_vkGetTensorViewOpaqueCaptureDescriptorDataARM( vkGetDeviceProcAddr( device, "vkGetTensorViewOpaqueCaptureDescriptorDataARM" ) ); + //=== VK_EXT_shader_module_identifier === vkGetShaderModuleIdentifierEXT = PFN_vkGetShaderModuleIdentifierEXT( vkGetDeviceProcAddr( device, "vkGetShaderModuleIdentifierEXT" ) ); vkGetShaderModuleCreateInfoIdentifierEXT = PFN_vkGetShaderModuleCreateInfoIdentifierEXT( vkGetDeviceProcAddr( device, "vkGetShaderModuleCreateInfoIdentifierEXT" ) ); @@ -1518,6 +1536,9 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_AMD_anti_lag === vkAntiLagUpdateAMD = PFN_vkAntiLagUpdateAMD( vkGetDeviceProcAddr( device, "vkAntiLagUpdateAMD" ) ); + //=== VK_KHR_present_wait2 === + vkWaitForPresent2KHR = PFN_vkWaitForPresent2KHR( vkGetDeviceProcAddr( device, "vkWaitForPresent2KHR" ) ); + //=== VK_EXT_shader_object === vkCreateShadersEXT = PFN_vkCreateShadersEXT( vkGetDeviceProcAddr( device, "vkCreateShadersEXT" ) ); vkDestroyShaderEXT = PFN_vkDestroyShaderEXT( vkGetDeviceProcAddr( device, "vkDestroyShaderEXT" ) ); @@ -2464,6 +2485,18 @@ namespace VULKAN_HPP_NAMESPACE PFN_vkCmdSetRepresentativeFragmentTestEnableNV vkCmdSetRepresentativeFragmentTestEnableNV = 0; PFN_vkCmdSetCoverageReductionModeNV vkCmdSetCoverageReductionModeNV = 0; + //=== VK_ARM_tensors === + PFN_vkCreateTensorARM vkCreateTensorARM = 0; + PFN_vkDestroyTensorARM vkDestroyTensorARM = 0; + PFN_vkCreateTensorViewARM vkCreateTensorViewARM = 0; + PFN_vkDestroyTensorViewARM vkDestroyTensorViewARM = 0; + PFN_vkGetTensorMemoryRequirementsARM vkGetTensorMemoryRequirementsARM = 0; + PFN_vkBindTensorMemoryARM vkBindTensorMemoryARM = 0; + PFN_vkGetDeviceTensorMemoryRequirementsARM vkGetDeviceTensorMemoryRequirementsARM = 0; + PFN_vkCmdCopyTensorARM vkCmdCopyTensorARM = 0; + PFN_vkGetTensorOpaqueCaptureDescriptorDataARM vkGetTensorOpaqueCaptureDescriptorDataARM = 0; + PFN_vkGetTensorViewOpaqueCaptureDescriptorDataARM vkGetTensorViewOpaqueCaptureDescriptorDataARM = 0; + //=== VK_EXT_shader_module_identifier === PFN_vkGetShaderModuleIdentifierEXT vkGetShaderModuleIdentifierEXT = 0; PFN_vkGetShaderModuleCreateInfoIdentifierEXT vkGetShaderModuleCreateInfoIdentifierEXT = 0; @@ -2483,6 +2516,9 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_AMD_anti_lag === PFN_vkAntiLagUpdateAMD vkAntiLagUpdateAMD = 0; + //=== VK_KHR_present_wait2 === + PFN_vkWaitForPresent2KHR vkWaitForPresent2KHR = 0; + //=== VK_EXT_shader_object === PFN_vkCreateShadersEXT vkCreateShadersEXT = 0; PFN_vkDestroyShaderEXT vkDestroyShaderEXT = 0; @@ -2684,6 +2720,10 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_EXT_opacity_micromap === class MicromapEXT; + //=== VK_ARM_tensors === + class TensorARM; + class TensorViewARM; + //=== VK_NV_optical_flow === class OpticalFlowSessionNV; @@ -3461,6 +3501,11 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Bool32 getScreenPresentationSupportQNX( uint32_t queueFamilyIndex, struct _screen_window & window ) const VULKAN_HPP_NOEXCEPT; #endif /*VK_USE_PLATFORM_SCREEN_QNX*/ + //=== VK_ARM_tensors === + + // wrapper function for command vkGetPhysicalDeviceExternalTensorPropertiesARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceExternalTensorPropertiesARM.html + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalTensorPropertiesARM getExternalTensorPropertiesARM( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalTensorInfoARM & externalTensorInfo ) const VULKAN_HPP_NOEXCEPT; + //=== VK_NV_optical_flow === // wrapper function for command vkGetPhysicalDeviceOpticalFlowImageFormatsNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceOpticalFlowImageFormatsNV.html @@ -4400,6 +4445,35 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetPipelineIndirectDeviceAddressNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineIndirectDeviceAddressNV.html VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceAddress getPipelineIndirectAddressNV( const VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV & info ) const VULKAN_HPP_NOEXCEPT; + //=== VK_ARM_tensors === + + // wrapper function for command vkCreateTensorARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateTensorARM.html + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::detail::CreateReturnType::Type createTensorARM( VULKAN_HPP_NAMESPACE::TensorCreateInfoARM const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + + // wrapper function for command vkCreateTensorViewARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateTensorViewARM.html + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::detail::CreateReturnType::Type createTensorViewARM( VULKAN_HPP_NAMESPACE::TensorViewCreateInfoARM const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + + // wrapper function for command vkGetTensorMemoryRequirementsARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorMemoryRequirementsARM.html + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getTensorMemoryRequirementsARM( const VULKAN_HPP_NAMESPACE::TensorMemoryRequirementsInfoARM & info ) const VULKAN_HPP_NOEXCEPT; + + // wrapper function for command vkGetTensorMemoryRequirementsARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorMemoryRequirementsARM.html + template VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain getTensorMemoryRequirementsARM( const VULKAN_HPP_NAMESPACE::TensorMemoryRequirementsInfoARM & info ) const VULKAN_HPP_NOEXCEPT; + + // wrapper function for command vkBindTensorMemoryARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindTensorMemoryARM.html + void bindTensorMemoryARM( VULKAN_HPP_NAMESPACE::ArrayProxy const & bindInfos ) const ; + + // wrapper function for command vkGetDeviceTensorMemoryRequirementsARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceTensorMemoryRequirementsARM.html + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getTensorMemoryRequirementsARM( const VULKAN_HPP_NAMESPACE::DeviceTensorMemoryRequirementsARM & info ) const VULKAN_HPP_NOEXCEPT; + + // wrapper function for command vkGetDeviceTensorMemoryRequirementsARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceTensorMemoryRequirementsARM.html + template VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain getTensorMemoryRequirementsARM( const VULKAN_HPP_NAMESPACE::DeviceTensorMemoryRequirementsARM & info ) const VULKAN_HPP_NOEXCEPT; + + // wrapper function for command vkGetTensorOpaqueCaptureDescriptorDataARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorOpaqueCaptureDescriptorDataARM.html + template VULKAN_HPP_NODISCARD DataType getTensorOpaqueCaptureDescriptorDataARM( const VULKAN_HPP_NAMESPACE::TensorCaptureDescriptorDataInfoARM & info ) const ; + + // wrapper function for command vkGetTensorViewOpaqueCaptureDescriptorDataARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorViewOpaqueCaptureDescriptorDataARM.html + template VULKAN_HPP_NODISCARD DataType getTensorViewOpaqueCaptureDescriptorDataARM( const VULKAN_HPP_NAMESPACE::TensorViewCaptureDescriptorDataInfoARM & info ) const ; + //=== VK_EXT_shader_module_identifier === // wrapper function for command vkGetShaderModuleCreateInfoIdentifierEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetShaderModuleCreateInfoIdentifierEXT.html @@ -6271,6 +6345,11 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCmdSetCoverageReductionModeNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetCoverageReductionModeNV.html void setCoverageReductionModeNV( VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode ) const VULKAN_HPP_NOEXCEPT; + //=== VK_ARM_tensors === + + // wrapper function for command vkCmdCopyTensorARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyTensorARM.html + void copyTensorARM( const VULKAN_HPP_NAMESPACE::CopyTensorInfoARM & copyTensorInfo ) const VULKAN_HPP_NOEXCEPT; + //=== VK_NV_optical_flow === // wrapper function for command vkCmdOpticalFlowExecuteNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdOpticalFlowExecuteNV.html @@ -11955,6 +12034,11 @@ namespace VULKAN_HPP_NAMESPACE void releaseFullScreenExclusiveModeEXT( ) const ; #endif /*VK_USE_PLATFORM_WIN32_KHR*/ + //=== VK_KHR_present_wait2 === + + // wrapper function for command vkWaitForPresent2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkWaitForPresent2KHR.html + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result waitForPresent2( const VULKAN_HPP_NAMESPACE::PresentWait2InfoKHR & presentWait2Info ) const ; + //=== VK_NV_low_latency2 === // wrapper function for command vkSetLatencySleepModeNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetLatencySleepModeNV.html @@ -12012,6 +12096,242 @@ namespace VULKAN_HPP_NAMESPACE }; + // wrapper class for handle VkTensorARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorARM.html + class TensorARM + { + public: + using CType = VkTensorARM; + using CppType = VULKAN_HPP_NAMESPACE::TensorARM; + + static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eTensorARM; + static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; + + public: + +#if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) + TensorARM( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::TensorCreateInfoARM const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) + { + *this = device.createTensorARM( createInfo, allocator ); + } +#endif + + TensorARM( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkTensorARM tensor, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) + : m_device( device ), m_tensorARM( tensor ), m_allocator( static_cast( allocator ) ), m_dispatcher( device.getDispatcher() ) + {} + + TensorARM( std::nullptr_t ) {} + + ~TensorARM() + { + clear(); + } + + TensorARM() = delete; + TensorARM( TensorARM const & ) = delete; + TensorARM( TensorARM && rhs ) VULKAN_HPP_NOEXCEPT + : m_device( VULKAN_HPP_NAMESPACE::exchange( rhs.m_device, {} ) ), m_tensorARM( VULKAN_HPP_NAMESPACE::exchange( rhs.m_tensorARM, {} ) ), m_allocator( VULKAN_HPP_NAMESPACE::exchange( rhs.m_allocator, {} ) ), m_dispatcher( VULKAN_HPP_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) + {} + TensorARM & operator=( TensorARM const & ) = delete; + TensorARM & operator=( TensorARM && rhs ) VULKAN_HPP_NOEXCEPT + { + if ( this != &rhs ) + { + + std::swap( m_device, rhs.m_device ); + std::swap( m_tensorARM, rhs.m_tensorARM ); + std::swap( m_allocator, rhs.m_allocator ); + std::swap( m_dispatcher, rhs.m_dispatcher ); + } + return *this; + } + + VULKAN_HPP_NAMESPACE::TensorARM const & operator*() const VULKAN_HPP_NOEXCEPT + { + return m_tensorARM; + } + + operator VULKAN_HPP_NAMESPACE::TensorARM() const VULKAN_HPP_NOEXCEPT + { + return m_tensorARM; + } + + void clear() VULKAN_HPP_NOEXCEPT + { + if ( m_tensorARM ) + { + getDispatcher()->vkDestroyTensorARM( static_cast( m_device ), static_cast( m_tensorARM ), reinterpret_cast( m_allocator ) ); + } + m_device = nullptr; + m_tensorARM = nullptr; + m_allocator = nullptr; + m_dispatcher = nullptr; + } + + VULKAN_HPP_NAMESPACE::TensorARM release() + { + + m_device = nullptr; + m_allocator = nullptr; + m_dispatcher = nullptr; + return VULKAN_HPP_NAMESPACE::exchange( m_tensorARM, nullptr ); + } + + + VULKAN_HPP_NAMESPACE::Device getDevice() const + { + return m_device; + } + + VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::detail::DeviceDispatcher const * getDispatcher() const + { + VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); + return m_dispatcher; + } + + void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::TensorARM & rhs ) VULKAN_HPP_NOEXCEPT + { + + std::swap( m_device, rhs.m_device ); + std::swap( m_tensorARM, rhs.m_tensorARM ); + std::swap( m_allocator, rhs.m_allocator ); + std::swap( m_dispatcher, rhs.m_dispatcher ); + } + + + + private: + + VULKAN_HPP_NAMESPACE::Device m_device = {}; + VULKAN_HPP_NAMESPACE::TensorARM m_tensorARM = {}; + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; + VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::detail::DeviceDispatcher const * m_dispatcher = nullptr; + }; + + template <> + struct isVulkanRAIIHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + + + // wrapper class for handle VkTensorViewARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorViewARM.html + class TensorViewARM + { + public: + using CType = VkTensorViewARM; + using CppType = VULKAN_HPP_NAMESPACE::TensorViewARM; + + static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eTensorViewARM; + static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; + + public: + +#if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) + TensorViewARM( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::TensorViewCreateInfoARM const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) + { + *this = device.createTensorViewARM( createInfo, allocator ); + } +#endif + + TensorViewARM( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkTensorViewARM tensorView, VULKAN_HPP_NAMESPACE::Optional allocator = nullptr ) + : m_device( device ), m_tensorViewARM( tensorView ), m_allocator( static_cast( allocator ) ), m_dispatcher( device.getDispatcher() ) + {} + + TensorViewARM( std::nullptr_t ) {} + + ~TensorViewARM() + { + clear(); + } + + TensorViewARM() = delete; + TensorViewARM( TensorViewARM const & ) = delete; + TensorViewARM( TensorViewARM && rhs ) VULKAN_HPP_NOEXCEPT + : m_device( VULKAN_HPP_NAMESPACE::exchange( rhs.m_device, {} ) ), m_tensorViewARM( VULKAN_HPP_NAMESPACE::exchange( rhs.m_tensorViewARM, {} ) ), m_allocator( VULKAN_HPP_NAMESPACE::exchange( rhs.m_allocator, {} ) ), m_dispatcher( VULKAN_HPP_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) + {} + TensorViewARM & operator=( TensorViewARM const & ) = delete; + TensorViewARM & operator=( TensorViewARM && rhs ) VULKAN_HPP_NOEXCEPT + { + if ( this != &rhs ) + { + + std::swap( m_device, rhs.m_device ); + std::swap( m_tensorViewARM, rhs.m_tensorViewARM ); + std::swap( m_allocator, rhs.m_allocator ); + std::swap( m_dispatcher, rhs.m_dispatcher ); + } + return *this; + } + + VULKAN_HPP_NAMESPACE::TensorViewARM const & operator*() const VULKAN_HPP_NOEXCEPT + { + return m_tensorViewARM; + } + + operator VULKAN_HPP_NAMESPACE::TensorViewARM() const VULKAN_HPP_NOEXCEPT + { + return m_tensorViewARM; + } + + void clear() VULKAN_HPP_NOEXCEPT + { + if ( m_tensorViewARM ) + { + getDispatcher()->vkDestroyTensorViewARM( static_cast( m_device ), static_cast( m_tensorViewARM ), reinterpret_cast( m_allocator ) ); + } + m_device = nullptr; + m_tensorViewARM = nullptr; + m_allocator = nullptr; + m_dispatcher = nullptr; + } + + VULKAN_HPP_NAMESPACE::TensorViewARM release() + { + + m_device = nullptr; + m_allocator = nullptr; + m_dispatcher = nullptr; + return VULKAN_HPP_NAMESPACE::exchange( m_tensorViewARM, nullptr ); + } + + + VULKAN_HPP_NAMESPACE::Device getDevice() const + { + return m_device; + } + + VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::detail::DeviceDispatcher const * getDispatcher() const + { + VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); + return m_dispatcher; + } + + void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::TensorViewARM & rhs ) VULKAN_HPP_NOEXCEPT + { + + std::swap( m_device, rhs.m_device ); + std::swap( m_tensorViewARM, rhs.m_tensorViewARM ); + std::swap( m_allocator, rhs.m_allocator ); + std::swap( m_dispatcher, rhs.m_dispatcher ); + } + + + + private: + + VULKAN_HPP_NAMESPACE::Device m_device = {}; + VULKAN_HPP_NAMESPACE::TensorViewARM m_tensorViewARM = {}; + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; + VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::detail::DeviceDispatcher const * m_dispatcher = nullptr; + }; + + template <> + struct isVulkanRAIIHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + + // wrapper class for handle VkValidationCacheEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkValidationCacheEXT.html class ValidationCacheEXT { @@ -22846,6 +23166,161 @@ VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCoverageReductionModeNV && "Function } + //=== VK_ARM_tensors === + + // wrapper function for command vkCreateTensorARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateTensorARM.html + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::detail::CreateReturnType::Type Device::createTensorARM( VULKAN_HPP_NAMESPACE::TensorCreateInfoARM const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::TensorARM tensor; + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateTensorARM( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &tensor ) ) ); + if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) +{ +#if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) + return VULKAN_HPP_UNEXPECTED( result ); +#else + VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createTensorARM" ); +#endif +} + + return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::TensorARM( *this, *reinterpret_cast( &tensor ), allocator ); + } + + // wrapper function for command vkCreateTensorViewARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateTensorViewARM.html + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::detail::CreateReturnType::Type Device::createTensorViewARM( VULKAN_HPP_NAMESPACE::TensorViewCreateInfoARM const & createInfo, VULKAN_HPP_NAMESPACE::Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::TensorViewARM view; + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkCreateTensorViewARM( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &view ) ) ); + if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) +{ +#if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) + return VULKAN_HPP_UNEXPECTED( result ); +#else + VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createTensorViewARM" ); +#endif +} + + return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::TensorViewARM( *this, *reinterpret_cast( &view ), allocator ); + } + + // wrapper function for command vkGetTensorMemoryRequirementsARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorMemoryRequirementsARM.html + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getTensorMemoryRequirementsARM( const VULKAN_HPP_NAMESPACE::TensorMemoryRequirementsInfoARM & info ) const VULKAN_HPP_NOEXCEPT + { +VULKAN_HPP_ASSERT( getDispatcher()->vkGetTensorMemoryRequirementsARM && "Function requires " ); + + + VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; + getDispatcher()->vkGetTensorMemoryRequirementsARM( static_cast( m_device ), reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); + + + return memoryRequirements; + } + + // wrapper function for command vkGetTensorMemoryRequirementsARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorMemoryRequirementsARM.html + template VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain Device::getTensorMemoryRequirementsARM( const VULKAN_HPP_NAMESPACE::TensorMemoryRequirementsInfoARM & info ) const VULKAN_HPP_NOEXCEPT + { +VULKAN_HPP_ASSERT( getDispatcher()->vkGetTensorMemoryRequirementsARM && "Function requires " ); + + + VULKAN_HPP_NAMESPACE::StructureChain structureChain; + VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get(); + getDispatcher()->vkGetTensorMemoryRequirementsARM( static_cast( m_device ), reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); + + + return structureChain; + } + + // wrapper function for command vkBindTensorMemoryARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindTensorMemoryARM.html + VULKAN_HPP_INLINE void Device::bindTensorMemoryARM( VULKAN_HPP_NAMESPACE::ArrayProxy const & bindInfos ) const + { +VULKAN_HPP_ASSERT( getDispatcher()->vkBindTensorMemoryARM && "Function requires " ); + + + + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkBindTensorMemoryARM( static_cast( m_device ), bindInfos.size(), reinterpret_cast( bindInfos.data() ) ) ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindTensorMemoryARM" ); + + + } + + // wrapper function for command vkGetDeviceTensorMemoryRequirementsARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceTensorMemoryRequirementsARM.html + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getTensorMemoryRequirementsARM( const VULKAN_HPP_NAMESPACE::DeviceTensorMemoryRequirementsARM & info ) const VULKAN_HPP_NOEXCEPT + { +VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceTensorMemoryRequirementsARM && "Function requires " ); + + + VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; + getDispatcher()->vkGetDeviceTensorMemoryRequirementsARM( static_cast( m_device ), reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); + + + return memoryRequirements; + } + + // wrapper function for command vkGetDeviceTensorMemoryRequirementsARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceTensorMemoryRequirementsARM.html + template VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain Device::getTensorMemoryRequirementsARM( const VULKAN_HPP_NAMESPACE::DeviceTensorMemoryRequirementsARM & info ) const VULKAN_HPP_NOEXCEPT + { +VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceTensorMemoryRequirementsARM && "Function requires " ); + + + VULKAN_HPP_NAMESPACE::StructureChain structureChain; + VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get(); + getDispatcher()->vkGetDeviceTensorMemoryRequirementsARM( static_cast( m_device ), reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); + + + return structureChain; + } + + // wrapper function for command vkCmdCopyTensorARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyTensorARM.html + VULKAN_HPP_INLINE void CommandBuffer::copyTensorARM( const VULKAN_HPP_NAMESPACE::CopyTensorInfoARM & copyTensorInfo ) const VULKAN_HPP_NOEXCEPT + { +VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyTensorARM && "Function requires " ); + + + + getDispatcher()->vkCmdCopyTensorARM( static_cast( m_commandBuffer ), reinterpret_cast( ©TensorInfo ) ); + + + + } + + // wrapper function for command vkGetPhysicalDeviceExternalTensorPropertiesARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceExternalTensorPropertiesARM.html + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalTensorPropertiesARM PhysicalDevice::getExternalTensorPropertiesARM( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalTensorInfoARM & externalTensorInfo ) const VULKAN_HPP_NOEXCEPT + { +VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceExternalTensorPropertiesARM && "Function requires " ); + + + VULKAN_HPP_NAMESPACE::ExternalTensorPropertiesARM externalTensorProperties; + getDispatcher()->vkGetPhysicalDeviceExternalTensorPropertiesARM( static_cast( m_physicalDevice ), reinterpret_cast( &externalTensorInfo ), reinterpret_cast( &externalTensorProperties ) ); + + + return externalTensorProperties; + } + + // wrapper function for command vkGetTensorOpaqueCaptureDescriptorDataARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorOpaqueCaptureDescriptorDataARM.html + template VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType Device::getTensorOpaqueCaptureDescriptorDataARM( const VULKAN_HPP_NAMESPACE::TensorCaptureDescriptorDataInfoARM & info ) const + { +VULKAN_HPP_ASSERT( getDispatcher()->vkGetTensorOpaqueCaptureDescriptorDataARM && "Function requires " ); + + + DataType data; + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetTensorOpaqueCaptureDescriptorDataARM( static_cast( m_device ), reinterpret_cast( &info ), &data ) ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getTensorOpaqueCaptureDescriptorDataARM" ); + + return data; + } + + // wrapper function for command vkGetTensorViewOpaqueCaptureDescriptorDataARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorViewOpaqueCaptureDescriptorDataARM.html + template VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType Device::getTensorViewOpaqueCaptureDescriptorDataARM( const VULKAN_HPP_NAMESPACE::TensorViewCaptureDescriptorDataInfoARM & info ) const + { +VULKAN_HPP_ASSERT( getDispatcher()->vkGetTensorViewOpaqueCaptureDescriptorDataARM && "Function requires " ); + + + DataType data; + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkGetTensorViewOpaqueCaptureDescriptorDataARM( static_cast( m_device ), reinterpret_cast( &info ), &data ) ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getTensorViewOpaqueCaptureDescriptorDataARM" ); + + return data; + } + //=== VK_EXT_shader_module_identifier === // wrapper function for command vkGetShaderModuleIdentifierEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetShaderModuleIdentifierEXT.html @@ -23043,6 +23518,21 @@ VULKAN_HPP_ASSERT( getDispatcher()->vkAntiLagUpdateAMD && "Function vkWaitForPresent2KHR && "Function requires " ); + + + + VULKAN_HPP_NAMESPACE::Result result = static_cast( getDispatcher()->vkWaitForPresent2KHR( static_cast( m_device ), static_cast( m_swapchainKHR ), reinterpret_cast( &presentWait2Info ) ) ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::waitForPresent2", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } ); + + return static_cast( result ); + } + //=== VK_EXT_shader_object === // wrapper function for command vkCreateShadersEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateShadersEXT.html diff --git a/include/vulkan/vulkan_shared.hpp b/include/vulkan/vulkan_shared.hpp index 53dfbc8..91149eb 100644 --- a/include/vulkan/vulkan_shared.hpp +++ b/include/vulkan/vulkan_shared.hpp @@ -874,6 +874,24 @@ private: }; using SharedMicromapEXT = SharedHandle; + //=== VK_ARM_tensors === + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = detail::ObjectDestroyShared; + }; + using SharedTensorARM = SharedHandle; + template <> + class SharedHandleTraits + { + public: + using DestructorType = Device; + using deleter = detail::ObjectDestroyShared; + }; + using SharedTensorViewARM = SharedHandle; + //=== VK_NV_optical_flow === template <> class SharedHandleTraits diff --git a/include/vulkan/vulkan_static_assertions.hpp b/include/vulkan/vulkan_static_assertions.hpp index 29fbc2e..7055d7f 100644 --- a/include/vulkan/vulkan_static_assertions.hpp +++ b/include/vulkan/vulkan_static_assertions.hpp @@ -4541,6 +4541,112 @@ VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::DirectDriverLoadingListL VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "DirectDriverLoadingListLUNARG is not nothrow_move_constructible!" ); + //=== VK_ARM_tensors === + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::TensorARM ) == sizeof( VkTensorARM ), "handle and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible::value, "TensorARM is not copy_constructible!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "TensorARM is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::TensorViewARM ) == sizeof( VkTensorViewARM ), "handle and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible::value, "TensorViewARM is not copy_constructible!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "TensorViewARM is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::TensorDescriptionARM ) == sizeof( VkTensorDescriptionARM ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "TensorDescriptionARM is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::TensorCreateInfoARM ) == sizeof( VkTensorCreateInfoARM ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "TensorCreateInfoARM is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::TensorViewCreateInfoARM ) == sizeof( VkTensorViewCreateInfoARM ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "TensorViewCreateInfoARM is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::TensorMemoryRequirementsInfoARM ) == sizeof( VkTensorMemoryRequirementsInfoARM ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "TensorMemoryRequirementsInfoARM is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::BindTensorMemoryInfoARM ) == sizeof( VkBindTensorMemoryInfoARM ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "BindTensorMemoryInfoARM is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::WriteDescriptorSetTensorARM ) == sizeof( VkWriteDescriptorSetTensorARM ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "WriteDescriptorSetTensorARM is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::TensorFormatPropertiesARM ) == sizeof( VkTensorFormatPropertiesARM ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "TensorFormatPropertiesARM is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceTensorPropertiesARM ) == sizeof( VkPhysicalDeviceTensorPropertiesARM ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "PhysicalDeviceTensorPropertiesARM is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::TensorMemoryBarrierARM ) == sizeof( VkTensorMemoryBarrierARM ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "TensorMemoryBarrierARM is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::TensorDependencyInfoARM ) == sizeof( VkTensorDependencyInfoARM ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "TensorDependencyInfoARM is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceTensorFeaturesARM ) == sizeof( VkPhysicalDeviceTensorFeaturesARM ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "PhysicalDeviceTensorFeaturesARM is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::DeviceTensorMemoryRequirementsARM ) == sizeof( VkDeviceTensorMemoryRequirementsARM ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "DeviceTensorMemoryRequirementsARM is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::CopyTensorInfoARM ) == sizeof( VkCopyTensorInfoARM ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "CopyTensorInfoARM is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::TensorCopyARM ) == sizeof( VkTensorCopyARM ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "TensorCopyARM is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfoTensorARM ) == sizeof( VkMemoryDedicatedAllocateInfoTensorARM ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "MemoryDedicatedAllocateInfoTensorARM is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalTensorInfoARM ) == sizeof( VkPhysicalDeviceExternalTensorInfoARM ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "PhysicalDeviceExternalTensorInfoARM is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::ExternalTensorPropertiesARM ) == sizeof( VkExternalTensorPropertiesARM ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "ExternalTensorPropertiesARM is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::ExternalMemoryTensorCreateInfoARM ) == sizeof( VkExternalMemoryTensorCreateInfoARM ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "ExternalMemoryTensorCreateInfoARM is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferTensorFeaturesARM ) == sizeof( VkPhysicalDeviceDescriptorBufferTensorFeaturesARM ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "PhysicalDeviceDescriptorBufferTensorFeaturesARM is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferTensorPropertiesARM ) == sizeof( VkPhysicalDeviceDescriptorBufferTensorPropertiesARM ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "PhysicalDeviceDescriptorBufferTensorPropertiesARM is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::DescriptorGetTensorInfoARM ) == sizeof( VkDescriptorGetTensorInfoARM ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "DescriptorGetTensorInfoARM is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::TensorCaptureDescriptorDataInfoARM ) == sizeof( VkTensorCaptureDescriptorDataInfoARM ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "TensorCaptureDescriptorDataInfoARM is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::TensorViewCaptureDescriptorDataInfoARM ) == sizeof( VkTensorViewCaptureDescriptorDataInfoARM ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "TensorViewCaptureDescriptorDataInfoARM is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::FrameBoundaryTensorsARM ) == sizeof( VkFrameBoundaryTensorsARM ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "FrameBoundaryTensorsARM is not nothrow_move_constructible!" ); + //=== VK_EXT_shader_module_identifier === VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierFeaturesEXT ) == sizeof( VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT ), "struct and wrapper have different size!" ); @@ -4635,6 +4741,34 @@ VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::AntiLagPresentationInfoA VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "AntiLagPresentationInfoAMD is not nothrow_move_constructible!" ); + //=== VK_KHR_present_id2 === + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesPresentId2KHR ) == sizeof( VkSurfaceCapabilitiesPresentId2KHR ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "SurfaceCapabilitiesPresentId2KHR is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PresentId2KHR ) == sizeof( VkPresentId2KHR ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "PresentId2KHR is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDevicePresentId2FeaturesKHR ) == sizeof( VkPhysicalDevicePresentId2FeaturesKHR ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "PhysicalDevicePresentId2FeaturesKHR is not nothrow_move_constructible!" ); + + //=== VK_KHR_present_wait2 === + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesPresentWait2KHR ) == sizeof( VkSurfaceCapabilitiesPresentWait2KHR ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "SurfaceCapabilitiesPresentWait2KHR is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDevicePresentWait2FeaturesKHR ) == sizeof( VkPhysicalDevicePresentWait2FeaturesKHR ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "PhysicalDevicePresentWait2FeaturesKHR is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PresentWait2InfoKHR ) == sizeof( VkPresentWait2InfoKHR ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "PresentWait2InfoKHR is not nothrow_move_constructible!" ); + //=== VK_KHR_ray_tracing_position_fetch === VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPositionFetchFeaturesKHR ) == sizeof( VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR ), "struct and wrapper have different size!" ); @@ -4981,6 +5115,24 @@ VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeAV1RateContro VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "VideoEncodeAV1RateControlLayerInfoKHR is not nothrow_move_constructible!" ); + //=== VK_KHR_video_decode_vp9 === + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoDecodeVP9FeaturesKHR ) == sizeof( VkPhysicalDeviceVideoDecodeVP9FeaturesKHR ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "PhysicalDeviceVideoDecodeVP9FeaturesKHR is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoDecodeVP9ProfileInfoKHR ) == sizeof( VkVideoDecodeVP9ProfileInfoKHR ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "VideoDecodeVP9ProfileInfoKHR is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoDecodeVP9CapabilitiesKHR ) == sizeof( VkVideoDecodeVP9CapabilitiesKHR ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "VideoDecodeVP9CapabilitiesKHR is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoDecodeVP9PictureInfoKHR ) == sizeof( VkVideoDecodeVP9PictureInfoKHR ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "VideoDecodeVP9PictureInfoKHR is not nothrow_move_constructible!" ); + //=== VK_KHR_video_maintenance1 === VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoMaintenance1FeaturesKHR ) == sizeof( VkPhysicalDeviceVideoMaintenance1FeaturesKHR ), "struct and wrapper have different size!" ); @@ -5047,6 +5199,16 @@ VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachment VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT is not nothrow_move_constructible!" ); + //=== VK_KHR_unified_image_layouts === + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceUnifiedImageLayoutsFeaturesKHR ) == sizeof( VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "PhysicalDeviceUnifiedImageLayoutsFeaturesKHR is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::AttachmentFeedbackLoopInfoEXT ) == sizeof( VkAttachmentFeedbackLoopInfoEXT ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "AttachmentFeedbackLoopInfoEXT is not nothrow_move_constructible!" ); + #if defined( VK_USE_PLATFORM_SCREEN_QNX ) //=== VK_QNX_external_memory_screen_buffer === @@ -5247,6 +5409,12 @@ VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderRepl VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "PhysicalDeviceShaderReplicatedCompositesFeaturesEXT is not nothrow_move_constructible!" ); + //=== VK_EXT_shader_float8 === + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat8FeaturesEXT ) == sizeof( VkPhysicalDeviceShaderFloat8FeaturesEXT ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "PhysicalDeviceShaderFloat8FeaturesEXT is not nothrow_move_constructible!" ); + //=== VK_NV_ray_tracing_validation === VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingValidationFeaturesNV ) == sizeof( VkPhysicalDeviceRayTracingValidationFeaturesNV ), "struct and wrapper have different size!" ); @@ -5501,6 +5669,20 @@ VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::DepthClampRangeEXT ) == VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "DepthClampRangeEXT is not nothrow_move_constructible!" ); + //=== VK_KHR_maintenance9 === + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance9FeaturesKHR ) == sizeof( VkPhysicalDeviceMaintenance9FeaturesKHR ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "PhysicalDeviceMaintenance9FeaturesKHR is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance9PropertiesKHR ) == sizeof( VkPhysicalDeviceMaintenance9PropertiesKHR ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "PhysicalDeviceMaintenance9PropertiesKHR is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::QueueFamilyOwnershipTransferPropertiesKHR ) == sizeof( VkQueueFamilyOwnershipTransferPropertiesKHR ), "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "QueueFamilyOwnershipTransferPropertiesKHR is not nothrow_move_constructible!" ); + //=== VK_KHR_video_maintenance2 === VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoMaintenance2FeaturesKHR ) == sizeof( VkPhysicalDeviceVideoMaintenance2FeaturesKHR ), "struct and wrapper have different size!" ); diff --git a/include/vulkan/vulkan_structs.hpp b/include/vulkan/vulkan_structs.hpp index 9bddd2b..436d498 100644 --- a/include/vulkan/vulkan_structs.hpp +++ b/include/vulkan/vulkan_structs.hpp @@ -6754,6 +6754,118 @@ auto operator<=>( AttachmentDescriptionStencilLayout const & ) const = default; }; using AttachmentDescriptionStencilLayoutKHR = AttachmentDescriptionStencilLayout; + // wrapper struct for struct VkAttachmentFeedbackLoopInfoEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkAttachmentFeedbackLoopInfoEXT.html + struct AttachmentFeedbackLoopInfoEXT + { + using NativeType = VkAttachmentFeedbackLoopInfoEXT; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentFeedbackLoopInfoEXT; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR AttachmentFeedbackLoopInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 feedbackLoopEnable_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, feedbackLoopEnable{ feedbackLoopEnable_ } + {} + + VULKAN_HPP_CONSTEXPR AttachmentFeedbackLoopInfoEXT( AttachmentFeedbackLoopInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + AttachmentFeedbackLoopInfoEXT( VkAttachmentFeedbackLoopInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : AttachmentFeedbackLoopInfoEXT( *reinterpret_cast( &rhs ) ) + {} + + + + AttachmentFeedbackLoopInfoEXT & operator=( AttachmentFeedbackLoopInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + AttachmentFeedbackLoopInfoEXT & operator=( VkAttachmentFeedbackLoopInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 AttachmentFeedbackLoopInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 AttachmentFeedbackLoopInfoEXT & setFeedbackLoopEnable( VULKAN_HPP_NAMESPACE::Bool32 feedbackLoopEnable_ ) VULKAN_HPP_NOEXCEPT + { + feedbackLoopEnable = feedbackLoopEnable_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkAttachmentFeedbackLoopInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkAttachmentFeedbackLoopInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkAttachmentFeedbackLoopInfoEXT const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkAttachmentFeedbackLoopInfoEXT *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, feedbackLoopEnable ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( AttachmentFeedbackLoopInfoEXT const & ) const = default; +#else + bool operator==( AttachmentFeedbackLoopInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( feedbackLoopEnable == rhs.feedbackLoopEnable ); +#endif + } + + bool operator!=( AttachmentFeedbackLoopInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentFeedbackLoopInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 feedbackLoopEnable = {}; + + }; + + template <> + struct CppType + { + using Type = AttachmentFeedbackLoopInfoEXT; + }; + // wrapper struct for struct VkAttachmentReference, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkAttachmentReference.html struct AttachmentReference { @@ -11108,6 +11220,134 @@ auto operator<=>( BindSparseInfo const & ) const = default; using Type = BindSparseInfo; }; + // wrapper struct for struct VkBindTensorMemoryInfoARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindTensorMemoryInfoARM.html + struct BindTensorMemoryInfoARM + { + using NativeType = VkBindTensorMemoryInfoARM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindTensorMemoryInfoARM; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR BindTensorMemoryInfoARM(VULKAN_HPP_NAMESPACE::TensorARM tensor_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, tensor{ tensor_ }, memory{ memory_ }, memoryOffset{ memoryOffset_ } + {} + + VULKAN_HPP_CONSTEXPR BindTensorMemoryInfoARM( BindTensorMemoryInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + BindTensorMemoryInfoARM( VkBindTensorMemoryInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT + : BindTensorMemoryInfoARM( *reinterpret_cast( &rhs ) ) + {} + + + + BindTensorMemoryInfoARM & operator=( BindTensorMemoryInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + BindTensorMemoryInfoARM & operator=( VkBindTensorMemoryInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 BindTensorMemoryInfoARM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 BindTensorMemoryInfoARM & setTensor( VULKAN_HPP_NAMESPACE::TensorARM tensor_ ) VULKAN_HPP_NOEXCEPT + { + tensor = tensor_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 BindTensorMemoryInfoARM & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT + { + memory = memory_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 BindTensorMemoryInfoARM & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT + { + memoryOffset = memoryOffset_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkBindTensorMemoryInfoARM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkBindTensorMemoryInfoARM &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkBindTensorMemoryInfoARM const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkBindTensorMemoryInfoARM *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, tensor, memory, memoryOffset ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( BindTensorMemoryInfoARM const & ) const = default; +#else + bool operator==( BindTensorMemoryInfoARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( tensor == rhs.tensor ) + && ( memory == rhs.memory ) + && ( memoryOffset == rhs.memoryOffset ); +#endif + } + + bool operator!=( BindTensorMemoryInfoARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindTensorMemoryInfoARM; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::TensorARM tensor = {}; + VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; + VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {}; + + }; + + template <> + struct CppType + { + using Type = BindTensorMemoryInfoARM; + }; + // wrapper struct for struct VkBindVertexBufferIndirectCommandEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkBindVertexBufferIndirectCommandEXT.html struct BindVertexBufferIndirectCommandEXT { @@ -23940,6 +24180,345 @@ VULKAN_HPP_CONSTEXPR_14 CopyMicromapToMemoryInfoEXT(VULKAN_HPP_NAMESPACE::Microm using Type = CopyMicromapToMemoryInfoEXT; }; + // wrapper struct for struct VkTensorCopyARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorCopyARM.html + struct TensorCopyARM + { + using NativeType = VkTensorCopyARM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTensorCopyARM; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR TensorCopyARM(uint32_t dimensionCount_ = {}, const uint64_t * pSrcOffset_ = {}, const uint64_t * pDstOffset_ = {}, const uint64_t * pExtent_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, dimensionCount{ dimensionCount_ }, pSrcOffset{ pSrcOffset_ }, pDstOffset{ pDstOffset_ }, pExtent{ pExtent_ } + {} + + VULKAN_HPP_CONSTEXPR TensorCopyARM( TensorCopyARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + TensorCopyARM( VkTensorCopyARM const & rhs ) VULKAN_HPP_NOEXCEPT + : TensorCopyARM( *reinterpret_cast( &rhs ) ) + {} + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + TensorCopyARM( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & srcOffset_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & dstOffset_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & extent_ = {}, const void * pNext_ = nullptr ) + : pNext( pNext_ ), dimensionCount( static_cast( srcOffset_.size() ) ), pSrcOffset( srcOffset_.data() ), pDstOffset( dstOffset_.data() ), pExtent( extent_.data() ) + { +#ifdef VULKAN_HPP_NO_EXCEPTIONS + VULKAN_HPP_ASSERT( srcOffset_.empty() || dstOffset_.empty() || ( srcOffset_.size() == dstOffset_.size() ) ); + VULKAN_HPP_ASSERT( srcOffset_.empty() || extent_.empty() || ( srcOffset_.size() == extent_.size() ) ); + VULKAN_HPP_ASSERT( dstOffset_.empty() || extent_.empty() || ( dstOffset_.size() == extent_.size() ) ); +#else + if ( !srcOffset_.empty() && !dstOffset_.empty() && ( srcOffset_.size() != dstOffset_.size() ) ) + { + throw LogicError( VULKAN_HPP_NAMESPACE_STRING"::TensorCopyARM::TensorCopyARM: !srcOffset_.empty() && !dstOffset_.empty() && ( srcOffset_.size() != dstOffset_.size() )" ); + } + if ( !srcOffset_.empty() && !extent_.empty() && ( srcOffset_.size() != extent_.size() ) ) + { + throw LogicError( VULKAN_HPP_NAMESPACE_STRING"::TensorCopyARM::TensorCopyARM: !srcOffset_.empty() && !extent_.empty() && ( srcOffset_.size() != extent_.size() )" ); + } + if ( !dstOffset_.empty() && !extent_.empty() && ( dstOffset_.size() != extent_.size() ) ) + { + throw LogicError( VULKAN_HPP_NAMESPACE_STRING"::TensorCopyARM::TensorCopyARM: !dstOffset_.empty() && !extent_.empty() && ( dstOffset_.size() != extent_.size() )" ); + } +#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + + + TensorCopyARM & operator=( TensorCopyARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + TensorCopyARM & operator=( VkTensorCopyARM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 TensorCopyARM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 TensorCopyARM & setDimensionCount( uint32_t dimensionCount_ ) VULKAN_HPP_NOEXCEPT + { + dimensionCount = dimensionCount_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 TensorCopyARM & setPSrcOffset( const uint64_t * pSrcOffset_ ) VULKAN_HPP_NOEXCEPT + { + pSrcOffset = pSrcOffset_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + TensorCopyARM & setSrcOffset( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & srcOffset_ ) VULKAN_HPP_NOEXCEPT + { + dimensionCount = static_cast( srcOffset_.size() ); + pSrcOffset = srcOffset_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + VULKAN_HPP_CONSTEXPR_14 TensorCopyARM & setPDstOffset( const uint64_t * pDstOffset_ ) VULKAN_HPP_NOEXCEPT + { + pDstOffset = pDstOffset_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + TensorCopyARM & setDstOffset( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & dstOffset_ ) VULKAN_HPP_NOEXCEPT + { + dimensionCount = static_cast( dstOffset_.size() ); + pDstOffset = dstOffset_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + VULKAN_HPP_CONSTEXPR_14 TensorCopyARM & setPExtent( const uint64_t * pExtent_ ) VULKAN_HPP_NOEXCEPT + { + pExtent = pExtent_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + TensorCopyARM & setExtent( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & extent_ ) VULKAN_HPP_NOEXCEPT + { + dimensionCount = static_cast( extent_.size() ); + pExtent = extent_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkTensorCopyARM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkTensorCopyARM &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkTensorCopyARM const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkTensorCopyARM *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, dimensionCount, pSrcOffset, pDstOffset, pExtent ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( TensorCopyARM const & ) const = default; +#else + bool operator==( TensorCopyARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( dimensionCount == rhs.dimensionCount ) + && ( pSrcOffset == rhs.pSrcOffset ) + && ( pDstOffset == rhs.pDstOffset ) + && ( pExtent == rhs.pExtent ); +#endif + } + + bool operator!=( TensorCopyARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTensorCopyARM; + const void * pNext = {}; + uint32_t dimensionCount = {}; + const uint64_t * pSrcOffset = {}; + const uint64_t * pDstOffset = {}; + const uint64_t * pExtent = {}; + + }; + + template <> + struct CppType + { + using Type = TensorCopyARM; + }; + + // wrapper struct for struct VkCopyTensorInfoARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyTensorInfoARM.html + struct CopyTensorInfoARM + { + using NativeType = VkCopyTensorInfoARM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyTensorInfoARM; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR CopyTensorInfoARM(VULKAN_HPP_NAMESPACE::TensorARM srcTensor_ = {}, VULKAN_HPP_NAMESPACE::TensorARM dstTensor_ = {}, uint32_t regionCount_ = {}, const VULKAN_HPP_NAMESPACE::TensorCopyARM * pRegions_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, srcTensor{ srcTensor_ }, dstTensor{ dstTensor_ }, regionCount{ regionCount_ }, pRegions{ pRegions_ } + {} + + VULKAN_HPP_CONSTEXPR CopyTensorInfoARM( CopyTensorInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + CopyTensorInfoARM( VkCopyTensorInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT + : CopyTensorInfoARM( *reinterpret_cast( &rhs ) ) + {} + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + CopyTensorInfoARM( VULKAN_HPP_NAMESPACE::TensorARM srcTensor_, VULKAN_HPP_NAMESPACE::TensorARM dstTensor_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_, const void * pNext_ = nullptr ) + : pNext( pNext_ ), srcTensor( srcTensor_ ), dstTensor( dstTensor_ ), regionCount( static_cast( regions_.size() ) ), pRegions( regions_.data() ) + {} +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + + + CopyTensorInfoARM & operator=( CopyTensorInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + CopyTensorInfoARM & operator=( VkCopyTensorInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 CopyTensorInfoARM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 CopyTensorInfoARM & setSrcTensor( VULKAN_HPP_NAMESPACE::TensorARM srcTensor_ ) VULKAN_HPP_NOEXCEPT + { + srcTensor = srcTensor_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 CopyTensorInfoARM & setDstTensor( VULKAN_HPP_NAMESPACE::TensorARM dstTensor_ ) VULKAN_HPP_NOEXCEPT + { + dstTensor = dstTensor_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 CopyTensorInfoARM & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT + { + regionCount = regionCount_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 CopyTensorInfoARM & setPRegions( const VULKAN_HPP_NAMESPACE::TensorCopyARM * pRegions_ ) VULKAN_HPP_NOEXCEPT + { + pRegions = pRegions_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + CopyTensorInfoARM & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) VULKAN_HPP_NOEXCEPT + { + regionCount = static_cast( regions_.size() ); + pRegions = regions_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkCopyTensorInfoARM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkCopyTensorInfoARM &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkCopyTensorInfoARM const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkCopyTensorInfoARM *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, srcTensor, dstTensor, regionCount, pRegions ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( CopyTensorInfoARM const & ) const = default; +#else + bool operator==( CopyTensorInfoARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( srcTensor == rhs.srcTensor ) + && ( dstTensor == rhs.dstTensor ) + && ( regionCount == rhs.regionCount ) + && ( pRegions == rhs.pRegions ); +#endif + } + + bool operator!=( CopyTensorInfoARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyTensorInfoARM; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::TensorARM srcTensor = {}; + VULKAN_HPP_NAMESPACE::TensorARM dstTensor = {}; + uint32_t regionCount = {}; + const VULKAN_HPP_NAMESPACE::TensorCopyARM * pRegions = {}; + + }; + + template <> + struct CppType + { + using Type = CopyTensorInfoARM; + }; + // wrapper struct for struct VkCuFunctionCreateInfoNVX, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkCuFunctionCreateInfoNVX.html struct CuFunctionCreateInfoNVX { @@ -28885,6 +29464,118 @@ VULKAN_HPP_CONSTEXPR_14 DescriptorGetInfoEXT(VULKAN_HPP_NAMESPACE::DescriptorTyp using Type = DescriptorGetInfoEXT; }; + // wrapper struct for struct VkDescriptorGetTensorInfoARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorGetTensorInfoARM.html + struct DescriptorGetTensorInfoARM + { + using NativeType = VkDescriptorGetTensorInfoARM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorGetTensorInfoARM; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR DescriptorGetTensorInfoARM(VULKAN_HPP_NAMESPACE::TensorViewARM tensorView_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, tensorView{ tensorView_ } + {} + + VULKAN_HPP_CONSTEXPR DescriptorGetTensorInfoARM( DescriptorGetTensorInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DescriptorGetTensorInfoARM( VkDescriptorGetTensorInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT + : DescriptorGetTensorInfoARM( *reinterpret_cast( &rhs ) ) + {} + + + + DescriptorGetTensorInfoARM & operator=( DescriptorGetTensorInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + DescriptorGetTensorInfoARM & operator=( VkDescriptorGetTensorInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 DescriptorGetTensorInfoARM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 DescriptorGetTensorInfoARM & setTensorView( VULKAN_HPP_NAMESPACE::TensorViewARM tensorView_ ) VULKAN_HPP_NOEXCEPT + { + tensorView = tensorView_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkDescriptorGetTensorInfoARM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkDescriptorGetTensorInfoARM &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkDescriptorGetTensorInfoARM const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkDescriptorGetTensorInfoARM *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, tensorView ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( DescriptorGetTensorInfoARM const & ) const = default; +#else + bool operator==( DescriptorGetTensorInfoARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( tensorView == rhs.tensorView ); +#endif + } + + bool operator!=( DescriptorGetTensorInfoARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorGetTensorInfoARM; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::TensorViewARM tensorView = {}; + + }; + + template <> + struct CppType + { + using Type = DescriptorGetTensorInfoARM; + }; + // wrapper struct for struct VkDescriptorPoolSize, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkDescriptorPoolSize.html struct DescriptorPoolSize { @@ -35558,6 +36249,462 @@ auto operator<=>( DeviceQueueShaderCoreControlCreateInfoARM const & ) const = de using Type = DeviceQueueShaderCoreControlCreateInfoARM; }; + // wrapper struct for struct VkTensorDescriptionARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorDescriptionARM.html + struct TensorDescriptionARM + { + using NativeType = VkTensorDescriptionARM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTensorDescriptionARM; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR TensorDescriptionARM(VULKAN_HPP_NAMESPACE::TensorTilingARM tiling_ = VULKAN_HPP_NAMESPACE::TensorTilingARM::eOptimal, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, uint32_t dimensionCount_ = {}, const int64_t * pDimensions_ = {}, const int64_t * pStrides_ = {}, VULKAN_HPP_NAMESPACE::TensorUsageFlagsARM usage_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, tiling{ tiling_ }, format{ format_ }, dimensionCount{ dimensionCount_ }, pDimensions{ pDimensions_ }, pStrides{ pStrides_ }, usage{ usage_ } + {} + + VULKAN_HPP_CONSTEXPR TensorDescriptionARM( TensorDescriptionARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + TensorDescriptionARM( VkTensorDescriptionARM const & rhs ) VULKAN_HPP_NOEXCEPT + : TensorDescriptionARM( *reinterpret_cast( &rhs ) ) + {} + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + TensorDescriptionARM( VULKAN_HPP_NAMESPACE::TensorTilingARM tiling_, VULKAN_HPP_NAMESPACE::Format format_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & dimensions_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & strides_ = {}, VULKAN_HPP_NAMESPACE::TensorUsageFlagsARM usage_ = {}, const void * pNext_ = nullptr ) + : pNext( pNext_ ), tiling( tiling_ ), format( format_ ), dimensionCount( static_cast( dimensions_.size() ) ), pDimensions( dimensions_.data() ), pStrides( strides_.data() ), usage( usage_ ) + { +#ifdef VULKAN_HPP_NO_EXCEPTIONS + VULKAN_HPP_ASSERT( strides_.empty() || ( dimensions_.size() == strides_.size() ) ); +#else + if ( !strides_.empty() && ( dimensions_.size() != strides_.size() ) ) + { + throw LogicError( VULKAN_HPP_NAMESPACE_STRING"::TensorDescriptionARM::TensorDescriptionARM: !strides_.empty() && ( dimensions_.size() != strides_.size() )" ); + } +#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + + + TensorDescriptionARM & operator=( TensorDescriptionARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + TensorDescriptionARM & operator=( VkTensorDescriptionARM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 TensorDescriptionARM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 TensorDescriptionARM & setTiling( VULKAN_HPP_NAMESPACE::TensorTilingARM tiling_ ) VULKAN_HPP_NOEXCEPT + { + tiling = tiling_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 TensorDescriptionARM & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT + { + format = format_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 TensorDescriptionARM & setDimensionCount( uint32_t dimensionCount_ ) VULKAN_HPP_NOEXCEPT + { + dimensionCount = dimensionCount_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 TensorDescriptionARM & setPDimensions( const int64_t * pDimensions_ ) VULKAN_HPP_NOEXCEPT + { + pDimensions = pDimensions_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + TensorDescriptionARM & setDimensions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & dimensions_ ) VULKAN_HPP_NOEXCEPT + { + dimensionCount = static_cast( dimensions_.size() ); + pDimensions = dimensions_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + VULKAN_HPP_CONSTEXPR_14 TensorDescriptionARM & setPStrides( const int64_t * pStrides_ ) VULKAN_HPP_NOEXCEPT + { + pStrides = pStrides_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + TensorDescriptionARM & setStrides( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & strides_ ) VULKAN_HPP_NOEXCEPT + { + dimensionCount = static_cast( strides_.size() ); + pStrides = strides_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + VULKAN_HPP_CONSTEXPR_14 TensorDescriptionARM & setUsage( VULKAN_HPP_NAMESPACE::TensorUsageFlagsARM usage_ ) VULKAN_HPP_NOEXCEPT + { + usage = usage_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkTensorDescriptionARM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkTensorDescriptionARM &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkTensorDescriptionARM const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkTensorDescriptionARM *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, tiling, format, dimensionCount, pDimensions, pStrides, usage ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( TensorDescriptionARM const & ) const = default; +#else + bool operator==( TensorDescriptionARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( tiling == rhs.tiling ) + && ( format == rhs.format ) + && ( dimensionCount == rhs.dimensionCount ) + && ( pDimensions == rhs.pDimensions ) + && ( pStrides == rhs.pStrides ) + && ( usage == rhs.usage ); +#endif + } + + bool operator!=( TensorDescriptionARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTensorDescriptionARM; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::TensorTilingARM tiling = VULKAN_HPP_NAMESPACE::TensorTilingARM::eOptimal; + VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; + uint32_t dimensionCount = {}; + const int64_t * pDimensions = {}; + const int64_t * pStrides = {}; + VULKAN_HPP_NAMESPACE::TensorUsageFlagsARM usage = {}; + + }; + + template <> + struct CppType + { + using Type = TensorDescriptionARM; + }; + + // wrapper struct for struct VkTensorCreateInfoARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorCreateInfoARM.html + struct TensorCreateInfoARM + { + using NativeType = VkTensorCreateInfoARM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTensorCreateInfoARM; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR TensorCreateInfoARM(VULKAN_HPP_NAMESPACE::TensorCreateFlagsARM flags_ = {}, const VULKAN_HPP_NAMESPACE::TensorDescriptionARM * pDescription_ = {}, VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive, uint32_t queueFamilyIndexCount_ = {}, const uint32_t * pQueueFamilyIndices_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, flags{ flags_ }, pDescription{ pDescription_ }, sharingMode{ sharingMode_ }, queueFamilyIndexCount{ queueFamilyIndexCount_ }, pQueueFamilyIndices{ pQueueFamilyIndices_ } + {} + + VULKAN_HPP_CONSTEXPR TensorCreateInfoARM( TensorCreateInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + TensorCreateInfoARM( VkTensorCreateInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT + : TensorCreateInfoARM( *reinterpret_cast( &rhs ) ) + {} + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + TensorCreateInfoARM( VULKAN_HPP_NAMESPACE::TensorCreateFlagsARM flags_, const VULKAN_HPP_NAMESPACE::TensorDescriptionARM * pDescription_, VULKAN_HPP_NAMESPACE::SharingMode sharingMode_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueFamilyIndices_, const void * pNext_ = nullptr ) + : pNext( pNext_ ), flags( flags_ ), pDescription( pDescription_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( static_cast( queueFamilyIndices_.size() ) ), pQueueFamilyIndices( queueFamilyIndices_.data() ) + {} +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + + + TensorCreateInfoARM & operator=( TensorCreateInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + TensorCreateInfoARM & operator=( VkTensorCreateInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 TensorCreateInfoARM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 TensorCreateInfoARM & setFlags( VULKAN_HPP_NAMESPACE::TensorCreateFlagsARM flags_ ) VULKAN_HPP_NOEXCEPT + { + flags = flags_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 TensorCreateInfoARM & setPDescription( const VULKAN_HPP_NAMESPACE::TensorDescriptionARM * pDescription_ ) VULKAN_HPP_NOEXCEPT + { + pDescription = pDescription_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 TensorCreateInfoARM & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT + { + sharingMode = sharingMode_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 TensorCreateInfoARM & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT + { + queueFamilyIndexCount = queueFamilyIndexCount_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 TensorCreateInfoARM & setPQueueFamilyIndices( const uint32_t * pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT + { + pQueueFamilyIndices = pQueueFamilyIndices_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + TensorCreateInfoARM & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT + { + queueFamilyIndexCount = static_cast( queueFamilyIndices_.size() ); + pQueueFamilyIndices = queueFamilyIndices_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkTensorCreateInfoARM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkTensorCreateInfoARM &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkTensorCreateInfoARM const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkTensorCreateInfoARM *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, flags, pDescription, sharingMode, queueFamilyIndexCount, pQueueFamilyIndices ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( TensorCreateInfoARM const & ) const = default; +#else + bool operator==( TensorCreateInfoARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( flags == rhs.flags ) + && ( pDescription == rhs.pDescription ) + && ( sharingMode == rhs.sharingMode ) + && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount ) + && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices ); +#endif + } + + bool operator!=( TensorCreateInfoARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTensorCreateInfoARM; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::TensorCreateFlagsARM flags = {}; + const VULKAN_HPP_NAMESPACE::TensorDescriptionARM * pDescription = {}; + VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive; + uint32_t queueFamilyIndexCount = {}; + const uint32_t * pQueueFamilyIndices = {}; + + }; + + template <> + struct CppType + { + using Type = TensorCreateInfoARM; + }; + + // wrapper struct for struct VkDeviceTensorMemoryRequirementsARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkDeviceTensorMemoryRequirementsARM.html + struct DeviceTensorMemoryRequirementsARM + { + using NativeType = VkDeviceTensorMemoryRequirementsARM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceTensorMemoryRequirementsARM; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR DeviceTensorMemoryRequirementsARM(const VULKAN_HPP_NAMESPACE::TensorCreateInfoARM * pCreateInfo_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, pCreateInfo{ pCreateInfo_ } + {} + + VULKAN_HPP_CONSTEXPR DeviceTensorMemoryRequirementsARM( DeviceTensorMemoryRequirementsARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DeviceTensorMemoryRequirementsARM( VkDeviceTensorMemoryRequirementsARM const & rhs ) VULKAN_HPP_NOEXCEPT + : DeviceTensorMemoryRequirementsARM( *reinterpret_cast( &rhs ) ) + {} + + + + DeviceTensorMemoryRequirementsARM & operator=( DeviceTensorMemoryRequirementsARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + DeviceTensorMemoryRequirementsARM & operator=( VkDeviceTensorMemoryRequirementsARM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 DeviceTensorMemoryRequirementsARM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 DeviceTensorMemoryRequirementsARM & setPCreateInfo( const VULKAN_HPP_NAMESPACE::TensorCreateInfoARM * pCreateInfo_ ) VULKAN_HPP_NOEXCEPT + { + pCreateInfo = pCreateInfo_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkDeviceTensorMemoryRequirementsARM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkDeviceTensorMemoryRequirementsARM &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkDeviceTensorMemoryRequirementsARM const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkDeviceTensorMemoryRequirementsARM *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, pCreateInfo ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( DeviceTensorMemoryRequirementsARM const & ) const = default; +#else + bool operator==( DeviceTensorMemoryRequirementsARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( pCreateInfo == rhs.pCreateInfo ); +#endif + } + + bool operator!=( DeviceTensorMemoryRequirementsARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceTensorMemoryRequirementsARM; + const void * pNext = {}; + const VULKAN_HPP_NAMESPACE::TensorCreateInfoARM * pCreateInfo = {}; + + }; + + template <> + struct CppType + { + using Type = DeviceTensorMemoryRequirementsARM; + }; + typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_GetInstanceProcAddrLUNARG)( VULKAN_HPP_NAMESPACE::Instance instance, const char * pName ); @@ -43445,6 +44592,118 @@ auto operator<=>( ExternalMemoryImageCreateInfoNV const & ) const = default; using Type = ExternalMemoryImageCreateInfoNV; }; + // wrapper struct for struct VkExternalMemoryTensorCreateInfoARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalMemoryTensorCreateInfoARM.html + struct ExternalMemoryTensorCreateInfoARM + { + using NativeType = VkExternalMemoryTensorCreateInfoARM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryTensorCreateInfoARM; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR ExternalMemoryTensorCreateInfoARM(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, handleTypes{ handleTypes_ } + {} + + VULKAN_HPP_CONSTEXPR ExternalMemoryTensorCreateInfoARM( ExternalMemoryTensorCreateInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ExternalMemoryTensorCreateInfoARM( VkExternalMemoryTensorCreateInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT + : ExternalMemoryTensorCreateInfoARM( *reinterpret_cast( &rhs ) ) + {} + + + + ExternalMemoryTensorCreateInfoARM & operator=( ExternalMemoryTensorCreateInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + ExternalMemoryTensorCreateInfoARM & operator=( VkExternalMemoryTensorCreateInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 ExternalMemoryTensorCreateInfoARM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 ExternalMemoryTensorCreateInfoARM & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT + { + handleTypes = handleTypes_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkExternalMemoryTensorCreateInfoARM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkExternalMemoryTensorCreateInfoARM &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkExternalMemoryTensorCreateInfoARM const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkExternalMemoryTensorCreateInfoARM *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, handleTypes ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( ExternalMemoryTensorCreateInfoARM const & ) const = default; +#else + bool operator==( ExternalMemoryTensorCreateInfoARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( handleTypes == rhs.handleTypes ); +#endif + } + + bool operator!=( ExternalMemoryTensorCreateInfoARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryTensorCreateInfoARM; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {}; + + }; + + template <> + struct CppType + { + using Type = ExternalMemoryTensorCreateInfoARM; + }; + // wrapper struct for struct VkExternalSemaphoreProperties, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalSemaphoreProperties.html struct ExternalSemaphoreProperties { @@ -43548,6 +44807,118 @@ auto operator<=>( ExternalSemaphoreProperties const & ) const = default; }; using ExternalSemaphorePropertiesKHR = ExternalSemaphoreProperties; + // wrapper struct for struct VkExternalTensorPropertiesARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkExternalTensorPropertiesARM.html + struct ExternalTensorPropertiesARM + { + using NativeType = VkExternalTensorPropertiesARM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalTensorPropertiesARM; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR ExternalTensorPropertiesARM(VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, externalMemoryProperties{ externalMemoryProperties_ } + {} + + VULKAN_HPP_CONSTEXPR ExternalTensorPropertiesARM( ExternalTensorPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ExternalTensorPropertiesARM( VkExternalTensorPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT + : ExternalTensorPropertiesARM( *reinterpret_cast( &rhs ) ) + {} + + + + ExternalTensorPropertiesARM & operator=( ExternalTensorPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + ExternalTensorPropertiesARM & operator=( VkExternalTensorPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 ExternalTensorPropertiesARM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 ExternalTensorPropertiesARM & setExternalMemoryProperties( VULKAN_HPP_NAMESPACE::ExternalMemoryProperties const & externalMemoryProperties_ ) VULKAN_HPP_NOEXCEPT + { + externalMemoryProperties = externalMemoryProperties_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkExternalTensorPropertiesARM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkExternalTensorPropertiesARM &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkExternalTensorPropertiesARM const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkExternalTensorPropertiesARM *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, externalMemoryProperties ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( ExternalTensorPropertiesARM const & ) const = default; +#else + bool operator==( ExternalTensorPropertiesARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( externalMemoryProperties == rhs.externalMemoryProperties ); +#endif + } + + bool operator!=( ExternalTensorPropertiesARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalTensorPropertiesARM; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties = {}; + + }; + + template <> + struct CppType + { + using Type = ExternalTensorPropertiesARM; + }; + // wrapper struct for struct VkFenceCreateInfo, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkFenceCreateInfo.html struct FenceCreateInfo { @@ -44626,6 +45997,141 @@ auto operator<=>( FrameBoundaryEXT const & ) const = default; using Type = FrameBoundaryEXT; }; + // wrapper struct for struct VkFrameBoundaryTensorsARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkFrameBoundaryTensorsARM.html + struct FrameBoundaryTensorsARM + { + using NativeType = VkFrameBoundaryTensorsARM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFrameBoundaryTensorsARM; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR FrameBoundaryTensorsARM(uint32_t tensorCount_ = {}, const VULKAN_HPP_NAMESPACE::TensorARM * pTensors_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, tensorCount{ tensorCount_ }, pTensors{ pTensors_ } + {} + + VULKAN_HPP_CONSTEXPR FrameBoundaryTensorsARM( FrameBoundaryTensorsARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + FrameBoundaryTensorsARM( VkFrameBoundaryTensorsARM const & rhs ) VULKAN_HPP_NOEXCEPT + : FrameBoundaryTensorsARM( *reinterpret_cast( &rhs ) ) + {} + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + FrameBoundaryTensorsARM( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & tensors_, const void * pNext_ = nullptr ) + : pNext( pNext_ ), tensorCount( static_cast( tensors_.size() ) ), pTensors( tensors_.data() ) + {} +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + + + FrameBoundaryTensorsARM & operator=( FrameBoundaryTensorsARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + FrameBoundaryTensorsARM & operator=( VkFrameBoundaryTensorsARM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 FrameBoundaryTensorsARM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 FrameBoundaryTensorsARM & setTensorCount( uint32_t tensorCount_ ) VULKAN_HPP_NOEXCEPT + { + tensorCount = tensorCount_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 FrameBoundaryTensorsARM & setPTensors( const VULKAN_HPP_NAMESPACE::TensorARM * pTensors_ ) VULKAN_HPP_NOEXCEPT + { + pTensors = pTensors_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + FrameBoundaryTensorsARM & setTensors( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & tensors_ ) VULKAN_HPP_NOEXCEPT + { + tensorCount = static_cast( tensors_.size() ); + pTensors = tensors_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkFrameBoundaryTensorsARM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkFrameBoundaryTensorsARM &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkFrameBoundaryTensorsARM const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkFrameBoundaryTensorsARM *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, tensorCount, pTensors ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( FrameBoundaryTensorsARM const & ) const = default; +#else + bool operator==( FrameBoundaryTensorsARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( tensorCount == rhs.tensorCount ) + && ( pTensors == rhs.pTensors ); +#endif + } + + bool operator!=( FrameBoundaryTensorsARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFrameBoundaryTensorsARM; + const void * pNext = {}; + uint32_t tensorCount = {}; + const VULKAN_HPP_NAMESPACE::TensorARM * pTensors = {}; + + }; + + template <> + struct CppType + { + using Type = FrameBoundaryTensorsARM; + }; + // wrapper struct for struct VkFramebufferAttachmentImageInfo, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkFramebufferAttachmentImageInfo.html struct FramebufferAttachmentImageInfo { @@ -60360,6 +61866,118 @@ auto operator<=>( MemoryDedicatedAllocateInfo const & ) const = default; }; using MemoryDedicatedAllocateInfoKHR = MemoryDedicatedAllocateInfo; + // wrapper struct for struct VkMemoryDedicatedAllocateInfoTensorARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryDedicatedAllocateInfoTensorARM.html + struct MemoryDedicatedAllocateInfoTensorARM + { + using NativeType = VkMemoryDedicatedAllocateInfoTensorARM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryDedicatedAllocateInfoTensorARM; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR MemoryDedicatedAllocateInfoTensorARM(VULKAN_HPP_NAMESPACE::TensorARM tensor_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, tensor{ tensor_ } + {} + + VULKAN_HPP_CONSTEXPR MemoryDedicatedAllocateInfoTensorARM( MemoryDedicatedAllocateInfoTensorARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + MemoryDedicatedAllocateInfoTensorARM( VkMemoryDedicatedAllocateInfoTensorARM const & rhs ) VULKAN_HPP_NOEXCEPT + : MemoryDedicatedAllocateInfoTensorARM( *reinterpret_cast( &rhs ) ) + {} + + + + MemoryDedicatedAllocateInfoTensorARM & operator=( MemoryDedicatedAllocateInfoTensorARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + MemoryDedicatedAllocateInfoTensorARM & operator=( VkMemoryDedicatedAllocateInfoTensorARM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 MemoryDedicatedAllocateInfoTensorARM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 MemoryDedicatedAllocateInfoTensorARM & setTensor( VULKAN_HPP_NAMESPACE::TensorARM tensor_ ) VULKAN_HPP_NOEXCEPT + { + tensor = tensor_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkMemoryDedicatedAllocateInfoTensorARM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkMemoryDedicatedAllocateInfoTensorARM &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkMemoryDedicatedAllocateInfoTensorARM const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkMemoryDedicatedAllocateInfoTensorARM *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, tensor ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( MemoryDedicatedAllocateInfoTensorARM const & ) const = default; +#else + bool operator==( MemoryDedicatedAllocateInfoTensorARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( tensor == rhs.tensor ); +#endif + } + + bool operator!=( MemoryDedicatedAllocateInfoTensorARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryDedicatedAllocateInfoTensorARM; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::TensorARM tensor = {}; + + }; + + template <> + struct CppType + { + using Type = MemoryDedicatedAllocateInfoTensorARM; + }; + // wrapper struct for struct VkMemoryDedicatedRequirements, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryDedicatedRequirements.html struct MemoryDedicatedRequirements { @@ -73574,6 +75192,246 @@ auto operator<=>( PhysicalDeviceDescriptorBufferPropertiesEXT const & ) const = using Type = PhysicalDeviceDescriptorBufferPropertiesEXT; }; + // wrapper struct for struct VkPhysicalDeviceDescriptorBufferTensorFeaturesARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDescriptorBufferTensorFeaturesARM.html + struct PhysicalDeviceDescriptorBufferTensorFeaturesARM + { + using NativeType = VkPhysicalDeviceDescriptorBufferTensorFeaturesARM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorBufferTensorFeaturesARM; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorBufferTensorFeaturesARM(VULKAN_HPP_NAMESPACE::Bool32 descriptorBufferTensorDescriptors_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, descriptorBufferTensorDescriptors{ descriptorBufferTensorDescriptors_ } + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorBufferTensorFeaturesARM( PhysicalDeviceDescriptorBufferTensorFeaturesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceDescriptorBufferTensorFeaturesARM( VkPhysicalDeviceDescriptorBufferTensorFeaturesARM const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceDescriptorBufferTensorFeaturesARM( *reinterpret_cast( &rhs ) ) + {} + + + + PhysicalDeviceDescriptorBufferTensorFeaturesARM & operator=( PhysicalDeviceDescriptorBufferTensorFeaturesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + PhysicalDeviceDescriptorBufferTensorFeaturesARM & operator=( VkPhysicalDeviceDescriptorBufferTensorFeaturesARM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorBufferTensorFeaturesARM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorBufferTensorFeaturesARM & setDescriptorBufferTensorDescriptors( VULKAN_HPP_NAMESPACE::Bool32 descriptorBufferTensorDescriptors_ ) VULKAN_HPP_NOEXCEPT + { + descriptorBufferTensorDescriptors = descriptorBufferTensorDescriptors_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkPhysicalDeviceDescriptorBufferTensorFeaturesARM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceDescriptorBufferTensorFeaturesARM &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceDescriptorBufferTensorFeaturesARM const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkPhysicalDeviceDescriptorBufferTensorFeaturesARM *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, descriptorBufferTensorDescriptors ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( PhysicalDeviceDescriptorBufferTensorFeaturesARM const & ) const = default; +#else + bool operator==( PhysicalDeviceDescriptorBufferTensorFeaturesARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( descriptorBufferTensorDescriptors == rhs.descriptorBufferTensorDescriptors ); +#endif + } + + bool operator!=( PhysicalDeviceDescriptorBufferTensorFeaturesARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorBufferTensorFeaturesARM; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 descriptorBufferTensorDescriptors = {}; + + }; + + template <> + struct CppType + { + using Type = PhysicalDeviceDescriptorBufferTensorFeaturesARM; + }; + + // wrapper struct for struct VkPhysicalDeviceDescriptorBufferTensorPropertiesARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDescriptorBufferTensorPropertiesARM.html + struct PhysicalDeviceDescriptorBufferTensorPropertiesARM + { + using NativeType = VkPhysicalDeviceDescriptorBufferTensorPropertiesARM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorBufferTensorPropertiesARM; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorBufferTensorPropertiesARM(size_t tensorCaptureReplayDescriptorDataSize_ = {}, size_t tensorViewCaptureReplayDescriptorDataSize_ = {}, size_t tensorDescriptorSize_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, tensorCaptureReplayDescriptorDataSize{ tensorCaptureReplayDescriptorDataSize_ }, tensorViewCaptureReplayDescriptorDataSize{ tensorViewCaptureReplayDescriptorDataSize_ }, tensorDescriptorSize{ tensorDescriptorSize_ } + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorBufferTensorPropertiesARM( PhysicalDeviceDescriptorBufferTensorPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceDescriptorBufferTensorPropertiesARM( VkPhysicalDeviceDescriptorBufferTensorPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceDescriptorBufferTensorPropertiesARM( *reinterpret_cast( &rhs ) ) + {} + + + + PhysicalDeviceDescriptorBufferTensorPropertiesARM & operator=( PhysicalDeviceDescriptorBufferTensorPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + PhysicalDeviceDescriptorBufferTensorPropertiesARM & operator=( VkPhysicalDeviceDescriptorBufferTensorPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorBufferTensorPropertiesARM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorBufferTensorPropertiesARM & setTensorCaptureReplayDescriptorDataSize( size_t tensorCaptureReplayDescriptorDataSize_ ) VULKAN_HPP_NOEXCEPT + { + tensorCaptureReplayDescriptorDataSize = tensorCaptureReplayDescriptorDataSize_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorBufferTensorPropertiesARM & setTensorViewCaptureReplayDescriptorDataSize( size_t tensorViewCaptureReplayDescriptorDataSize_ ) VULKAN_HPP_NOEXCEPT + { + tensorViewCaptureReplayDescriptorDataSize = tensorViewCaptureReplayDescriptorDataSize_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorBufferTensorPropertiesARM & setTensorDescriptorSize( size_t tensorDescriptorSize_ ) VULKAN_HPP_NOEXCEPT + { + tensorDescriptorSize = tensorDescriptorSize_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkPhysicalDeviceDescriptorBufferTensorPropertiesARM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceDescriptorBufferTensorPropertiesARM &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceDescriptorBufferTensorPropertiesARM const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkPhysicalDeviceDescriptorBufferTensorPropertiesARM *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, tensorCaptureReplayDescriptorDataSize, tensorViewCaptureReplayDescriptorDataSize, tensorDescriptorSize ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( PhysicalDeviceDescriptorBufferTensorPropertiesARM const & ) const = default; +#else + bool operator==( PhysicalDeviceDescriptorBufferTensorPropertiesARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( tensorCaptureReplayDescriptorDataSize == rhs.tensorCaptureReplayDescriptorDataSize ) + && ( tensorViewCaptureReplayDescriptorDataSize == rhs.tensorViewCaptureReplayDescriptorDataSize ) + && ( tensorDescriptorSize == rhs.tensorDescriptorSize ); +#endif + } + + bool operator!=( PhysicalDeviceDescriptorBufferTensorPropertiesARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorBufferTensorPropertiesARM; + const void * pNext = {}; + size_t tensorCaptureReplayDescriptorDataSize = {}; + size_t tensorViewCaptureReplayDescriptorDataSize = {}; + size_t tensorDescriptorSize = {}; + + }; + + template <> + struct CppType + { + using Type = PhysicalDeviceDescriptorBufferTensorPropertiesARM; + }; + // wrapper struct for struct VkPhysicalDeviceDescriptorIndexingFeatures, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDescriptorIndexingFeatures.html struct PhysicalDeviceDescriptorIndexingFeatures { @@ -78021,6 +79879,134 @@ auto operator<=>( PhysicalDeviceExternalSemaphoreInfo const & ) const = default; }; using PhysicalDeviceExternalSemaphoreInfoKHR = PhysicalDeviceExternalSemaphoreInfo; + // wrapper struct for struct VkPhysicalDeviceExternalTensorInfoARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceExternalTensorInfoARM.html + struct PhysicalDeviceExternalTensorInfoARM + { + using NativeType = VkPhysicalDeviceExternalTensorInfoARM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalTensorInfoARM; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalTensorInfoARM(VULKAN_HPP_NAMESPACE::TensorCreateFlagsARM flags_ = {}, const VULKAN_HPP_NAMESPACE::TensorDescriptionARM * pDescription_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, flags{ flags_ }, pDescription{ pDescription_ }, handleType{ handleType_ } + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalTensorInfoARM( PhysicalDeviceExternalTensorInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceExternalTensorInfoARM( VkPhysicalDeviceExternalTensorInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceExternalTensorInfoARM( *reinterpret_cast( &rhs ) ) + {} + + + + PhysicalDeviceExternalTensorInfoARM & operator=( PhysicalDeviceExternalTensorInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + PhysicalDeviceExternalTensorInfoARM & operator=( VkPhysicalDeviceExternalTensorInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalTensorInfoARM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalTensorInfoARM & setFlags( VULKAN_HPP_NAMESPACE::TensorCreateFlagsARM flags_ ) VULKAN_HPP_NOEXCEPT + { + flags = flags_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalTensorInfoARM & setPDescription( const VULKAN_HPP_NAMESPACE::TensorDescriptionARM * pDescription_ ) VULKAN_HPP_NOEXCEPT + { + pDescription = pDescription_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalTensorInfoARM & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT + { + handleType = handleType_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkPhysicalDeviceExternalTensorInfoARM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceExternalTensorInfoARM &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceExternalTensorInfoARM const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkPhysicalDeviceExternalTensorInfoARM *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, flags, pDescription, handleType ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( PhysicalDeviceExternalTensorInfoARM const & ) const = default; +#else + bool operator==( PhysicalDeviceExternalTensorInfoARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( flags == rhs.flags ) + && ( pDescription == rhs.pDescription ) + && ( handleType == rhs.handleType ); +#endif + } + + bool operator!=( PhysicalDeviceExternalTensorInfoARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalTensorInfoARM; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::TensorCreateFlagsARM flags = {}; + const VULKAN_HPP_NAMESPACE::TensorDescriptionARM * pDescription = {}; + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; + + }; + + template <> + struct CppType + { + using Type = PhysicalDeviceExternalTensorInfoARM; + }; + // wrapper struct for struct VkPhysicalDeviceFaultFeaturesEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceFaultFeaturesEXT.html struct PhysicalDeviceFaultFeaturesEXT { @@ -86483,6 +88469,218 @@ auto operator<=>( PhysicalDeviceMaintenance8FeaturesKHR const & ) const = defaul using Type = PhysicalDeviceMaintenance8FeaturesKHR; }; + // wrapper struct for struct VkPhysicalDeviceMaintenance9FeaturesKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMaintenance9FeaturesKHR.html + struct PhysicalDeviceMaintenance9FeaturesKHR + { + using NativeType = VkPhysicalDeviceMaintenance9FeaturesKHR; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMaintenance9FeaturesKHR; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance9FeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 maintenance9_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, maintenance9{ maintenance9_ } + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance9FeaturesKHR( PhysicalDeviceMaintenance9FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceMaintenance9FeaturesKHR( VkPhysicalDeviceMaintenance9FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceMaintenance9FeaturesKHR( *reinterpret_cast( &rhs ) ) + {} + + + + PhysicalDeviceMaintenance9FeaturesKHR & operator=( PhysicalDeviceMaintenance9FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + PhysicalDeviceMaintenance9FeaturesKHR & operator=( VkPhysicalDeviceMaintenance9FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMaintenance9FeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMaintenance9FeaturesKHR & setMaintenance9( VULKAN_HPP_NAMESPACE::Bool32 maintenance9_ ) VULKAN_HPP_NOEXCEPT + { + maintenance9 = maintenance9_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkPhysicalDeviceMaintenance9FeaturesKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceMaintenance9FeaturesKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceMaintenance9FeaturesKHR const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkPhysicalDeviceMaintenance9FeaturesKHR *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, maintenance9 ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( PhysicalDeviceMaintenance9FeaturesKHR const & ) const = default; +#else + bool operator==( PhysicalDeviceMaintenance9FeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( maintenance9 == rhs.maintenance9 ); +#endif + } + + bool operator!=( PhysicalDeviceMaintenance9FeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMaintenance9FeaturesKHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 maintenance9 = {}; + + }; + + template <> + struct CppType + { + using Type = PhysicalDeviceMaintenance9FeaturesKHR; + }; + + // wrapper struct for struct VkPhysicalDeviceMaintenance9PropertiesKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMaintenance9PropertiesKHR.html + struct PhysicalDeviceMaintenance9PropertiesKHR + { + using NativeType = VkPhysicalDeviceMaintenance9PropertiesKHR; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMaintenance9PropertiesKHR; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance9PropertiesKHR(VULKAN_HPP_NAMESPACE::Bool32 image2DViewOf3DSparse_ = {}, VULKAN_HPP_NAMESPACE::DefaultVertexAttributeValueKHR defaultVertexAttributeValue_ = VULKAN_HPP_NAMESPACE::DefaultVertexAttributeValueKHR::eZeroZeroZeroZero, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, image2DViewOf3DSparse{ image2DViewOf3DSparse_ }, defaultVertexAttributeValue{ defaultVertexAttributeValue_ } + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance9PropertiesKHR( PhysicalDeviceMaintenance9PropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceMaintenance9PropertiesKHR( VkPhysicalDeviceMaintenance9PropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceMaintenance9PropertiesKHR( *reinterpret_cast( &rhs ) ) + {} + + + + PhysicalDeviceMaintenance9PropertiesKHR & operator=( PhysicalDeviceMaintenance9PropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + PhysicalDeviceMaintenance9PropertiesKHR & operator=( VkPhysicalDeviceMaintenance9PropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + + operator VkPhysicalDeviceMaintenance9PropertiesKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceMaintenance9PropertiesKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceMaintenance9PropertiesKHR const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkPhysicalDeviceMaintenance9PropertiesKHR *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, image2DViewOf3DSparse, defaultVertexAttributeValue ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( PhysicalDeviceMaintenance9PropertiesKHR const & ) const = default; +#else + bool operator==( PhysicalDeviceMaintenance9PropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( image2DViewOf3DSparse == rhs.image2DViewOf3DSparse ) + && ( defaultVertexAttributeValue == rhs.defaultVertexAttributeValue ); +#endif + } + + bool operator!=( PhysicalDeviceMaintenance9PropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMaintenance9PropertiesKHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 image2DViewOf3DSparse = {}; + VULKAN_HPP_NAMESPACE::DefaultVertexAttributeValueKHR defaultVertexAttributeValue = VULKAN_HPP_NAMESPACE::DefaultVertexAttributeValueKHR::eZeroZeroZeroZero; + + }; + + template <> + struct CppType + { + using Type = PhysicalDeviceMaintenance9PropertiesKHR; + }; + // wrapper struct for struct VkPhysicalDeviceMapMemoryPlacedFeaturesEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceMapMemoryPlacedFeaturesEXT.html struct PhysicalDeviceMapMemoryPlacedFeaturesEXT { @@ -92067,6 +94265,118 @@ auto operator<=>( PhysicalDevicePresentBarrierFeaturesNV const & ) const = defau using Type = PhysicalDevicePresentBarrierFeaturesNV; }; + // wrapper struct for struct VkPhysicalDevicePresentId2FeaturesKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePresentId2FeaturesKHR.html + struct PhysicalDevicePresentId2FeaturesKHR + { + using NativeType = VkPhysicalDevicePresentId2FeaturesKHR; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePresentId2FeaturesKHR; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR PhysicalDevicePresentId2FeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 presentId2_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, presentId2{ presentId2_ } + {} + + VULKAN_HPP_CONSTEXPR PhysicalDevicePresentId2FeaturesKHR( PhysicalDevicePresentId2FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDevicePresentId2FeaturesKHR( VkPhysicalDevicePresentId2FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDevicePresentId2FeaturesKHR( *reinterpret_cast( &rhs ) ) + {} + + + + PhysicalDevicePresentId2FeaturesKHR & operator=( PhysicalDevicePresentId2FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + PhysicalDevicePresentId2FeaturesKHR & operator=( VkPhysicalDevicePresentId2FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePresentId2FeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePresentId2FeaturesKHR & setPresentId2( VULKAN_HPP_NAMESPACE::Bool32 presentId2_ ) VULKAN_HPP_NOEXCEPT + { + presentId2 = presentId2_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkPhysicalDevicePresentId2FeaturesKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDevicePresentId2FeaturesKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDevicePresentId2FeaturesKHR const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkPhysicalDevicePresentId2FeaturesKHR *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, presentId2 ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( PhysicalDevicePresentId2FeaturesKHR const & ) const = default; +#else + bool operator==( PhysicalDevicePresentId2FeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( presentId2 == rhs.presentId2 ); +#endif + } + + bool operator!=( PhysicalDevicePresentId2FeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePresentId2FeaturesKHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 presentId2 = {}; + + }; + + template <> + struct CppType + { + using Type = PhysicalDevicePresentId2FeaturesKHR; + }; + // wrapper struct for struct VkPhysicalDevicePresentIdFeaturesKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePresentIdFeaturesKHR.html struct PhysicalDevicePresentIdFeaturesKHR { @@ -92405,6 +94715,118 @@ auto operator<=>( PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT const & ) using Type = PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT; }; + // wrapper struct for struct VkPhysicalDevicePresentWait2FeaturesKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePresentWait2FeaturesKHR.html + struct PhysicalDevicePresentWait2FeaturesKHR + { + using NativeType = VkPhysicalDevicePresentWait2FeaturesKHR; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePresentWait2FeaturesKHR; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR PhysicalDevicePresentWait2FeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 presentWait2_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, presentWait2{ presentWait2_ } + {} + + VULKAN_HPP_CONSTEXPR PhysicalDevicePresentWait2FeaturesKHR( PhysicalDevicePresentWait2FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDevicePresentWait2FeaturesKHR( VkPhysicalDevicePresentWait2FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDevicePresentWait2FeaturesKHR( *reinterpret_cast( &rhs ) ) + {} + + + + PhysicalDevicePresentWait2FeaturesKHR & operator=( PhysicalDevicePresentWait2FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + PhysicalDevicePresentWait2FeaturesKHR & operator=( VkPhysicalDevicePresentWait2FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePresentWait2FeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePresentWait2FeaturesKHR & setPresentWait2( VULKAN_HPP_NAMESPACE::Bool32 presentWait2_ ) VULKAN_HPP_NOEXCEPT + { + presentWait2 = presentWait2_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkPhysicalDevicePresentWait2FeaturesKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDevicePresentWait2FeaturesKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDevicePresentWait2FeaturesKHR const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkPhysicalDevicePresentWait2FeaturesKHR *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, presentWait2 ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( PhysicalDevicePresentWait2FeaturesKHR const & ) const = default; +#else + bool operator==( PhysicalDevicePresentWait2FeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( presentWait2 == rhs.presentWait2 ); +#endif + } + + bool operator!=( PhysicalDevicePresentWait2FeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePresentWait2FeaturesKHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 presentWait2 = {}; + + }; + + template <> + struct CppType + { + using Type = PhysicalDevicePresentWait2FeaturesKHR; + }; + // wrapper struct for struct VkPhysicalDevicePresentWaitFeaturesKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDevicePresentWaitFeaturesKHR.html struct PhysicalDevicePresentWaitFeaturesKHR { @@ -98684,6 +101106,126 @@ auto operator<=>( PhysicalDeviceShaderFloat16Int8Features const & ) const = defa using PhysicalDeviceFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features; using PhysicalDeviceShaderFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features; + // wrapper struct for struct VkPhysicalDeviceShaderFloat8FeaturesEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderFloat8FeaturesEXT.html + struct PhysicalDeviceShaderFloat8FeaturesEXT + { + using NativeType = VkPhysicalDeviceShaderFloat8FeaturesEXT; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderFloat8FeaturesEXT; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderFloat8FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 shaderFloat8_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderFloat8CooperativeMatrix_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, shaderFloat8{ shaderFloat8_ }, shaderFloat8CooperativeMatrix{ shaderFloat8CooperativeMatrix_ } + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderFloat8FeaturesEXT( PhysicalDeviceShaderFloat8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceShaderFloat8FeaturesEXT( VkPhysicalDeviceShaderFloat8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceShaderFloat8FeaturesEXT( *reinterpret_cast( &rhs ) ) + {} + + + + PhysicalDeviceShaderFloat8FeaturesEXT & operator=( PhysicalDeviceShaderFloat8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + PhysicalDeviceShaderFloat8FeaturesEXT & operator=( VkPhysicalDeviceShaderFloat8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderFloat8FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderFloat8FeaturesEXT & setShaderFloat8( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat8_ ) VULKAN_HPP_NOEXCEPT + { + shaderFloat8 = shaderFloat8_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderFloat8FeaturesEXT & setShaderFloat8CooperativeMatrix( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat8CooperativeMatrix_ ) VULKAN_HPP_NOEXCEPT + { + shaderFloat8CooperativeMatrix = shaderFloat8CooperativeMatrix_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkPhysicalDeviceShaderFloat8FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceShaderFloat8FeaturesEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceShaderFloat8FeaturesEXT const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkPhysicalDeviceShaderFloat8FeaturesEXT *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, shaderFloat8, shaderFloat8CooperativeMatrix ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( PhysicalDeviceShaderFloat8FeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceShaderFloat8FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( shaderFloat8 == rhs.shaderFloat8 ) + && ( shaderFloat8CooperativeMatrix == rhs.shaderFloat8CooperativeMatrix ); +#endif + } + + bool operator!=( PhysicalDeviceShaderFloat8FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderFloat8FeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderFloat8 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderFloat8CooperativeMatrix = {}; + + }; + + template <> + struct CppType + { + using Type = PhysicalDeviceShaderFloat8FeaturesEXT; + }; + // wrapper struct for struct VkPhysicalDeviceShaderFloatControls2Features, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderFloatControls2Features.html struct PhysicalDeviceShaderFloatControls2Features { @@ -102538,6 +105080,280 @@ auto operator<=>( PhysicalDeviceSynchronization2Features const & ) const = defau }; using PhysicalDeviceSynchronization2FeaturesKHR = PhysicalDeviceSynchronization2Features; + // wrapper struct for struct VkPhysicalDeviceTensorFeaturesARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTensorFeaturesARM.html + struct PhysicalDeviceTensorFeaturesARM + { + using NativeType = VkPhysicalDeviceTensorFeaturesARM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTensorFeaturesARM; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR PhysicalDeviceTensorFeaturesARM(VULKAN_HPP_NAMESPACE::Bool32 tensorNonPacked_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderTensorAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTensorArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTensorArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTensorUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 tensors_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, tensorNonPacked{ tensorNonPacked_ }, shaderTensorAccess{ shaderTensorAccess_ }, shaderStorageTensorArrayDynamicIndexing{ shaderStorageTensorArrayDynamicIndexing_ }, shaderStorageTensorArrayNonUniformIndexing{ shaderStorageTensorArrayNonUniformIndexing_ }, descriptorBindingStorageTensorUpdateAfterBind{ descriptorBindingStorageTensorUpdateAfterBind_ }, tensors{ tensors_ } + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceTensorFeaturesARM( PhysicalDeviceTensorFeaturesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceTensorFeaturesARM( VkPhysicalDeviceTensorFeaturesARM const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceTensorFeaturesARM( *reinterpret_cast( &rhs ) ) + {} + + + + PhysicalDeviceTensorFeaturesARM & operator=( PhysicalDeviceTensorFeaturesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + PhysicalDeviceTensorFeaturesARM & operator=( VkPhysicalDeviceTensorFeaturesARM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTensorFeaturesARM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTensorFeaturesARM & setTensorNonPacked( VULKAN_HPP_NAMESPACE::Bool32 tensorNonPacked_ ) VULKAN_HPP_NOEXCEPT + { + tensorNonPacked = tensorNonPacked_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTensorFeaturesARM & setShaderTensorAccess( VULKAN_HPP_NAMESPACE::Bool32 shaderTensorAccess_ ) VULKAN_HPP_NOEXCEPT + { + shaderTensorAccess = shaderTensorAccess_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTensorFeaturesARM & setShaderStorageTensorArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTensorArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT + { + shaderStorageTensorArrayDynamicIndexing = shaderStorageTensorArrayDynamicIndexing_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTensorFeaturesARM & setShaderStorageTensorArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTensorArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT + { + shaderStorageTensorArrayNonUniformIndexing = shaderStorageTensorArrayNonUniformIndexing_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTensorFeaturesARM & setDescriptorBindingStorageTensorUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTensorUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT + { + descriptorBindingStorageTensorUpdateAfterBind = descriptorBindingStorageTensorUpdateAfterBind_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTensorFeaturesARM & setTensors( VULKAN_HPP_NAMESPACE::Bool32 tensors_ ) VULKAN_HPP_NOEXCEPT + { + tensors = tensors_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkPhysicalDeviceTensorFeaturesARM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceTensorFeaturesARM &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceTensorFeaturesARM const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkPhysicalDeviceTensorFeaturesARM *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, tensorNonPacked, shaderTensorAccess, shaderStorageTensorArrayDynamicIndexing, shaderStorageTensorArrayNonUniformIndexing, descriptorBindingStorageTensorUpdateAfterBind, tensors ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( PhysicalDeviceTensorFeaturesARM const & ) const = default; +#else + bool operator==( PhysicalDeviceTensorFeaturesARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( tensorNonPacked == rhs.tensorNonPacked ) + && ( shaderTensorAccess == rhs.shaderTensorAccess ) + && ( shaderStorageTensorArrayDynamicIndexing == rhs.shaderStorageTensorArrayDynamicIndexing ) + && ( shaderStorageTensorArrayNonUniformIndexing == rhs.shaderStorageTensorArrayNonUniformIndexing ) + && ( descriptorBindingStorageTensorUpdateAfterBind == rhs.descriptorBindingStorageTensorUpdateAfterBind ) + && ( tensors == rhs.tensors ); +#endif + } + + bool operator!=( PhysicalDeviceTensorFeaturesARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTensorFeaturesARM; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 tensorNonPacked = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderTensorAccess = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTensorArrayDynamicIndexing = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTensorArrayNonUniformIndexing = {}; + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTensorUpdateAfterBind = {}; + VULKAN_HPP_NAMESPACE::Bool32 tensors = {}; + + }; + + template <> + struct CppType + { + using Type = PhysicalDeviceTensorFeaturesARM; + }; + + // wrapper struct for struct VkPhysicalDeviceTensorPropertiesARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTensorPropertiesARM.html + struct PhysicalDeviceTensorPropertiesARM + { + using NativeType = VkPhysicalDeviceTensorPropertiesARM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTensorPropertiesARM; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR PhysicalDeviceTensorPropertiesARM(uint32_t maxTensorDimensionCount_ = {}, uint64_t maxTensorElements_ = {}, uint64_t maxPerDimensionTensorElements_ = {}, int64_t maxTensorStride_ = {}, uint64_t maxTensorSize_ = {}, uint32_t maxTensorShaderAccessArrayLength_ = {}, uint32_t maxTensorShaderAccessSize_ = {}, uint32_t maxDescriptorSetStorageTensors_ = {}, uint32_t maxPerStageDescriptorSetStorageTensors_ = {}, uint32_t maxDescriptorSetUpdateAfterBindStorageTensors_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindStorageTensors_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTensorArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::ShaderStageFlags shaderTensorSupportedStages_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, maxTensorDimensionCount{ maxTensorDimensionCount_ }, maxTensorElements{ maxTensorElements_ }, maxPerDimensionTensorElements{ maxPerDimensionTensorElements_ }, maxTensorStride{ maxTensorStride_ }, maxTensorSize{ maxTensorSize_ }, maxTensorShaderAccessArrayLength{ maxTensorShaderAccessArrayLength_ }, maxTensorShaderAccessSize{ maxTensorShaderAccessSize_ }, maxDescriptorSetStorageTensors{ maxDescriptorSetStorageTensors_ }, maxPerStageDescriptorSetStorageTensors{ maxPerStageDescriptorSetStorageTensors_ }, maxDescriptorSetUpdateAfterBindStorageTensors{ maxDescriptorSetUpdateAfterBindStorageTensors_ }, maxPerStageDescriptorUpdateAfterBindStorageTensors{ maxPerStageDescriptorUpdateAfterBindStorageTensors_ }, shaderStorageTensorArrayNonUniformIndexingNative{ shaderStorageTensorArrayNonUniformIndexingNative_ }, shaderTensorSupportedStages{ shaderTensorSupportedStages_ } + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceTensorPropertiesARM( PhysicalDeviceTensorPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceTensorPropertiesARM( VkPhysicalDeviceTensorPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceTensorPropertiesARM( *reinterpret_cast( &rhs ) ) + {} + + + + PhysicalDeviceTensorPropertiesARM & operator=( PhysicalDeviceTensorPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + PhysicalDeviceTensorPropertiesARM & operator=( VkPhysicalDeviceTensorPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + + operator VkPhysicalDeviceTensorPropertiesARM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceTensorPropertiesARM &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceTensorPropertiesARM const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkPhysicalDeviceTensorPropertiesARM *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, maxTensorDimensionCount, maxTensorElements, maxPerDimensionTensorElements, maxTensorStride, maxTensorSize, maxTensorShaderAccessArrayLength, maxTensorShaderAccessSize, maxDescriptorSetStorageTensors, maxPerStageDescriptorSetStorageTensors, maxDescriptorSetUpdateAfterBindStorageTensors, maxPerStageDescriptorUpdateAfterBindStorageTensors, shaderStorageTensorArrayNonUniformIndexingNative, shaderTensorSupportedStages ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( PhysicalDeviceTensorPropertiesARM const & ) const = default; +#else + bool operator==( PhysicalDeviceTensorPropertiesARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( maxTensorDimensionCount == rhs.maxTensorDimensionCount ) + && ( maxTensorElements == rhs.maxTensorElements ) + && ( maxPerDimensionTensorElements == rhs.maxPerDimensionTensorElements ) + && ( maxTensorStride == rhs.maxTensorStride ) + && ( maxTensorSize == rhs.maxTensorSize ) + && ( maxTensorShaderAccessArrayLength == rhs.maxTensorShaderAccessArrayLength ) + && ( maxTensorShaderAccessSize == rhs.maxTensorShaderAccessSize ) + && ( maxDescriptorSetStorageTensors == rhs.maxDescriptorSetStorageTensors ) + && ( maxPerStageDescriptorSetStorageTensors == rhs.maxPerStageDescriptorSetStorageTensors ) + && ( maxDescriptorSetUpdateAfterBindStorageTensors == rhs.maxDescriptorSetUpdateAfterBindStorageTensors ) + && ( maxPerStageDescriptorUpdateAfterBindStorageTensors == rhs.maxPerStageDescriptorUpdateAfterBindStorageTensors ) + && ( shaderStorageTensorArrayNonUniformIndexingNative == rhs.shaderStorageTensorArrayNonUniformIndexingNative ) + && ( shaderTensorSupportedStages == rhs.shaderTensorSupportedStages ); +#endif + } + + bool operator!=( PhysicalDeviceTensorPropertiesARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTensorPropertiesARM; + void * pNext = {}; + uint32_t maxTensorDimensionCount = {}; + uint64_t maxTensorElements = {}; + uint64_t maxPerDimensionTensorElements = {}; + int64_t maxTensorStride = {}; + uint64_t maxTensorSize = {}; + uint32_t maxTensorShaderAccessArrayLength = {}; + uint32_t maxTensorShaderAccessSize = {}; + uint32_t maxDescriptorSetStorageTensors = {}; + uint32_t maxPerStageDescriptorSetStorageTensors = {}; + uint32_t maxDescriptorSetUpdateAfterBindStorageTensors = {}; + uint32_t maxPerStageDescriptorUpdateAfterBindStorageTensors = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTensorArrayNonUniformIndexingNative = {}; + VULKAN_HPP_NAMESPACE::ShaderStageFlags shaderTensorSupportedStages = {}; + + }; + + template <> + struct CppType + { + using Type = PhysicalDeviceTensorPropertiesARM; + }; + // wrapper struct for struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT.html struct PhysicalDeviceTexelBufferAlignmentFeaturesEXT { @@ -104098,6 +106914,126 @@ auto operator<=>( PhysicalDeviceTransformFeedbackPropertiesEXT const & ) const = using Type = PhysicalDeviceTransformFeedbackPropertiesEXT; }; + // wrapper struct for struct VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR.html + struct PhysicalDeviceUnifiedImageLayoutsFeaturesKHR + { + using NativeType = VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceUnifiedImageLayoutsFeaturesKHR; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR PhysicalDeviceUnifiedImageLayoutsFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 unifiedImageLayouts_ = {}, VULKAN_HPP_NAMESPACE::Bool32 unifiedImageLayoutsVideo_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, unifiedImageLayouts{ unifiedImageLayouts_ }, unifiedImageLayoutsVideo{ unifiedImageLayoutsVideo_ } + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceUnifiedImageLayoutsFeaturesKHR( PhysicalDeviceUnifiedImageLayoutsFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceUnifiedImageLayoutsFeaturesKHR( VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceUnifiedImageLayoutsFeaturesKHR( *reinterpret_cast( &rhs ) ) + {} + + + + PhysicalDeviceUnifiedImageLayoutsFeaturesKHR & operator=( PhysicalDeviceUnifiedImageLayoutsFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + PhysicalDeviceUnifiedImageLayoutsFeaturesKHR & operator=( VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceUnifiedImageLayoutsFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceUnifiedImageLayoutsFeaturesKHR & setUnifiedImageLayouts( VULKAN_HPP_NAMESPACE::Bool32 unifiedImageLayouts_ ) VULKAN_HPP_NOEXCEPT + { + unifiedImageLayouts = unifiedImageLayouts_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceUnifiedImageLayoutsFeaturesKHR & setUnifiedImageLayoutsVideo( VULKAN_HPP_NAMESPACE::Bool32 unifiedImageLayoutsVideo_ ) VULKAN_HPP_NOEXCEPT + { + unifiedImageLayoutsVideo = unifiedImageLayoutsVideo_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, unifiedImageLayouts, unifiedImageLayoutsVideo ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( PhysicalDeviceUnifiedImageLayoutsFeaturesKHR const & ) const = default; +#else + bool operator==( PhysicalDeviceUnifiedImageLayoutsFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( unifiedImageLayouts == rhs.unifiedImageLayouts ) + && ( unifiedImageLayoutsVideo == rhs.unifiedImageLayoutsVideo ); +#endif + } + + bool operator!=( PhysicalDeviceUnifiedImageLayoutsFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceUnifiedImageLayoutsFeaturesKHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 unifiedImageLayouts = {}; + VULKAN_HPP_NAMESPACE::Bool32 unifiedImageLayoutsVideo = {}; + + }; + + template <> + struct CppType + { + using Type = PhysicalDeviceUnifiedImageLayoutsFeaturesKHR; + }; + // wrapper struct for struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceUniformBufferStandardLayoutFeatures.html struct PhysicalDeviceUniformBufferStandardLayoutFeatures { @@ -104879,6 +107815,118 @@ auto operator<=>( PhysicalDeviceVertexInputDynamicStateFeaturesEXT const & ) con using Type = PhysicalDeviceVertexInputDynamicStateFeaturesEXT; }; + // wrapper struct for struct VkPhysicalDeviceVideoDecodeVP9FeaturesKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVideoDecodeVP9FeaturesKHR.html + struct PhysicalDeviceVideoDecodeVP9FeaturesKHR + { + using NativeType = VkPhysicalDeviceVideoDecodeVP9FeaturesKHR; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVideoDecodeVp9FeaturesKHR; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR PhysicalDeviceVideoDecodeVP9FeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 videoDecodeVP9_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, videoDecodeVP9{ videoDecodeVP9_ } + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceVideoDecodeVP9FeaturesKHR( PhysicalDeviceVideoDecodeVP9FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceVideoDecodeVP9FeaturesKHR( VkPhysicalDeviceVideoDecodeVP9FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceVideoDecodeVP9FeaturesKHR( *reinterpret_cast( &rhs ) ) + {} + + + + PhysicalDeviceVideoDecodeVP9FeaturesKHR & operator=( PhysicalDeviceVideoDecodeVP9FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + PhysicalDeviceVideoDecodeVP9FeaturesKHR & operator=( VkPhysicalDeviceVideoDecodeVP9FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVideoDecodeVP9FeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVideoDecodeVP9FeaturesKHR & setVideoDecodeVP9( VULKAN_HPP_NAMESPACE::Bool32 videoDecodeVP9_ ) VULKAN_HPP_NOEXCEPT + { + videoDecodeVP9 = videoDecodeVP9_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkPhysicalDeviceVideoDecodeVP9FeaturesKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceVideoDecodeVP9FeaturesKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceVideoDecodeVP9FeaturesKHR const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkPhysicalDeviceVideoDecodeVP9FeaturesKHR *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, videoDecodeVP9 ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( PhysicalDeviceVideoDecodeVP9FeaturesKHR const & ) const = default; +#else + bool operator==( PhysicalDeviceVideoDecodeVP9FeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( videoDecodeVP9 == rhs.videoDecodeVP9 ); +#endif + } + + bool operator!=( PhysicalDeviceVideoDecodeVP9FeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVideoDecodeVp9FeaturesKHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 videoDecodeVP9 = {}; + + }; + + template <> + struct CppType + { + using Type = PhysicalDeviceVideoDecodeVP9FeaturesKHR; + }; + // wrapper struct for struct VkPhysicalDeviceVideoEncodeAV1FeaturesKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceVideoEncodeAV1FeaturesKHR.html struct PhysicalDeviceVideoEncodeAV1FeaturesKHR { @@ -115582,6 +118630,141 @@ VULKAN_HPP_CONSTEXPR PresentFrameTokenGGP(GgpFrameToken frameToken_ = {}, const }; #endif /*VK_USE_PLATFORM_GGP*/ + // wrapper struct for struct VkPresentId2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentId2KHR.html + struct PresentId2KHR + { + using NativeType = VkPresentId2KHR; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentId2KHR; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR PresentId2KHR(uint32_t swapchainCount_ = {}, const uint64_t * pPresentIds_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, swapchainCount{ swapchainCount_ }, pPresentIds{ pPresentIds_ } + {} + + VULKAN_HPP_CONSTEXPR PresentId2KHR( PresentId2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PresentId2KHR( VkPresentId2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + : PresentId2KHR( *reinterpret_cast( &rhs ) ) + {} + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PresentId2KHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & presentIds_, const void * pNext_ = nullptr ) + : pNext( pNext_ ), swapchainCount( static_cast( presentIds_.size() ) ), pPresentIds( presentIds_.data() ) + {} +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + + + PresentId2KHR & operator=( PresentId2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + PresentId2KHR & operator=( VkPresentId2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 PresentId2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PresentId2KHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT + { + swapchainCount = swapchainCount_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PresentId2KHR & setPPresentIds( const uint64_t * pPresentIds_ ) VULKAN_HPP_NOEXCEPT + { + pPresentIds = pPresentIds_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PresentId2KHR & setPresentIds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & presentIds_ ) VULKAN_HPP_NOEXCEPT + { + swapchainCount = static_cast( presentIds_.size() ); + pPresentIds = presentIds_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkPresentId2KHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPresentId2KHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPresentId2KHR const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkPresentId2KHR *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, swapchainCount, pPresentIds ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( PresentId2KHR const & ) const = default; +#else + bool operator==( PresentId2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( swapchainCount == rhs.swapchainCount ) + && ( pPresentIds == rhs.pPresentIds ); +#endif + } + + bool operator!=( PresentId2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentId2KHR; + const void * pNext = {}; + uint32_t swapchainCount = {}; + const uint64_t * pPresentIds = {}; + + }; + + template <> + struct CppType + { + using Type = PresentId2KHR; + }; + // wrapper struct for struct VkPresentIdKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentIdKHR.html struct PresentIdKHR { @@ -116538,6 +119721,126 @@ auto operator<=>( PresentTimesInfoGOOGLE const & ) const = default; using Type = PresentTimesInfoGOOGLE; }; + // wrapper struct for struct VkPresentWait2InfoKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkPresentWait2InfoKHR.html + struct PresentWait2InfoKHR + { + using NativeType = VkPresentWait2InfoKHR; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentWait2InfoKHR; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR PresentWait2InfoKHR(uint64_t presentId_ = {}, uint64_t timeout_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, presentId{ presentId_ }, timeout{ timeout_ } + {} + + VULKAN_HPP_CONSTEXPR PresentWait2InfoKHR( PresentWait2InfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PresentWait2InfoKHR( VkPresentWait2InfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : PresentWait2InfoKHR( *reinterpret_cast( &rhs ) ) + {} + + + + PresentWait2InfoKHR & operator=( PresentWait2InfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + PresentWait2InfoKHR & operator=( VkPresentWait2InfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 PresentWait2InfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PresentWait2InfoKHR & setPresentId( uint64_t presentId_ ) VULKAN_HPP_NOEXCEPT + { + presentId = presentId_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PresentWait2InfoKHR & setTimeout( uint64_t timeout_ ) VULKAN_HPP_NOEXCEPT + { + timeout = timeout_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkPresentWait2InfoKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPresentWait2InfoKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPresentWait2InfoKHR const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkPresentWait2InfoKHR *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, presentId, timeout ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( PresentWait2InfoKHR const & ) const = default; +#else + bool operator==( PresentWait2InfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( presentId == rhs.presentId ) + && ( timeout == rhs.timeout ); +#endif + } + + bool operator!=( PresentWait2InfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentWait2InfoKHR; + const void * pNext = {}; + uint64_t presentId = {}; + uint64_t timeout = {}; + + }; + + template <> + struct CppType + { + using Type = PresentWait2InfoKHR; + }; + // wrapper struct for struct VkPrivateDataSlotCreateInfo, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkPrivateDataSlotCreateInfo.html struct PrivateDataSlotCreateInfo { @@ -118353,6 +121656,104 @@ VULKAN_HPP_CONSTEXPR_14 QueueFamilyGlobalPriorityProperties(uint32_t priorityCou using QueueFamilyGlobalPriorityPropertiesEXT = QueueFamilyGlobalPriorityProperties; using QueueFamilyGlobalPriorityPropertiesKHR = QueueFamilyGlobalPriorityProperties; + // wrapper struct for struct VkQueueFamilyOwnershipTransferPropertiesKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueueFamilyOwnershipTransferPropertiesKHR.html + struct QueueFamilyOwnershipTransferPropertiesKHR + { + using NativeType = VkQueueFamilyOwnershipTransferPropertiesKHR; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyOwnershipTransferPropertiesKHR; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR QueueFamilyOwnershipTransferPropertiesKHR(uint32_t optimalImageTransferToQueueFamilies_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, optimalImageTransferToQueueFamilies{ optimalImageTransferToQueueFamilies_ } + {} + + VULKAN_HPP_CONSTEXPR QueueFamilyOwnershipTransferPropertiesKHR( QueueFamilyOwnershipTransferPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + QueueFamilyOwnershipTransferPropertiesKHR( VkQueueFamilyOwnershipTransferPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : QueueFamilyOwnershipTransferPropertiesKHR( *reinterpret_cast( &rhs ) ) + {} + + + + QueueFamilyOwnershipTransferPropertiesKHR & operator=( QueueFamilyOwnershipTransferPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + QueueFamilyOwnershipTransferPropertiesKHR & operator=( VkQueueFamilyOwnershipTransferPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + + operator VkQueueFamilyOwnershipTransferPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkQueueFamilyOwnershipTransferPropertiesKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkQueueFamilyOwnershipTransferPropertiesKHR const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkQueueFamilyOwnershipTransferPropertiesKHR *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, optimalImageTransferToQueueFamilies ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( QueueFamilyOwnershipTransferPropertiesKHR const & ) const = default; +#else + bool operator==( QueueFamilyOwnershipTransferPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( optimalImageTransferToQueueFamilies == rhs.optimalImageTransferToQueueFamilies ); +#endif + } + + bool operator!=( QueueFamilyOwnershipTransferPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyOwnershipTransferPropertiesKHR; + void * pNext = {}; + uint32_t optimalImageTransferToQueueFamilies = {}; + + }; + + template <> + struct CppType + { + using Type = QueueFamilyOwnershipTransferPropertiesKHR; + }; + // wrapper struct for struct VkQueueFamilyProperties, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkQueueFamilyProperties.html struct QueueFamilyProperties { @@ -131183,6 +134584,230 @@ auto operator<=>( SurfaceCapabilitiesPresentBarrierNV const & ) const = default; using Type = SurfaceCapabilitiesPresentBarrierNV; }; + // wrapper struct for struct VkSurfaceCapabilitiesPresentId2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceCapabilitiesPresentId2KHR.html + struct SurfaceCapabilitiesPresentId2KHR + { + using NativeType = VkSurfaceCapabilitiesPresentId2KHR; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilitiesPresentId2KHR; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesPresentId2KHR(VULKAN_HPP_NAMESPACE::Bool32 presentId2Supported_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, presentId2Supported{ presentId2Supported_ } + {} + + VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesPresentId2KHR( SurfaceCapabilitiesPresentId2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SurfaceCapabilitiesPresentId2KHR( VkSurfaceCapabilitiesPresentId2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + : SurfaceCapabilitiesPresentId2KHR( *reinterpret_cast( &rhs ) ) + {} + + + + SurfaceCapabilitiesPresentId2KHR & operator=( SurfaceCapabilitiesPresentId2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + SurfaceCapabilitiesPresentId2KHR & operator=( VkSurfaceCapabilitiesPresentId2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 SurfaceCapabilitiesPresentId2KHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 SurfaceCapabilitiesPresentId2KHR & setPresentId2Supported( VULKAN_HPP_NAMESPACE::Bool32 presentId2Supported_ ) VULKAN_HPP_NOEXCEPT + { + presentId2Supported = presentId2Supported_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkSurfaceCapabilitiesPresentId2KHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkSurfaceCapabilitiesPresentId2KHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkSurfaceCapabilitiesPresentId2KHR const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkSurfaceCapabilitiesPresentId2KHR *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, presentId2Supported ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( SurfaceCapabilitiesPresentId2KHR const & ) const = default; +#else + bool operator==( SurfaceCapabilitiesPresentId2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( presentId2Supported == rhs.presentId2Supported ); +#endif + } + + bool operator!=( SurfaceCapabilitiesPresentId2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilitiesPresentId2KHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 presentId2Supported = {}; + + }; + + template <> + struct CppType + { + using Type = SurfaceCapabilitiesPresentId2KHR; + }; + + // wrapper struct for struct VkSurfaceCapabilitiesPresentWait2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceCapabilitiesPresentWait2KHR.html + struct SurfaceCapabilitiesPresentWait2KHR + { + using NativeType = VkSurfaceCapabilitiesPresentWait2KHR; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilitiesPresentWait2KHR; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesPresentWait2KHR(VULKAN_HPP_NAMESPACE::Bool32 presentWait2Supported_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, presentWait2Supported{ presentWait2Supported_ } + {} + + VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesPresentWait2KHR( SurfaceCapabilitiesPresentWait2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SurfaceCapabilitiesPresentWait2KHR( VkSurfaceCapabilitiesPresentWait2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + : SurfaceCapabilitiesPresentWait2KHR( *reinterpret_cast( &rhs ) ) + {} + + + + SurfaceCapabilitiesPresentWait2KHR & operator=( SurfaceCapabilitiesPresentWait2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + SurfaceCapabilitiesPresentWait2KHR & operator=( VkSurfaceCapabilitiesPresentWait2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 SurfaceCapabilitiesPresentWait2KHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 SurfaceCapabilitiesPresentWait2KHR & setPresentWait2Supported( VULKAN_HPP_NAMESPACE::Bool32 presentWait2Supported_ ) VULKAN_HPP_NOEXCEPT + { + presentWait2Supported = presentWait2Supported_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkSurfaceCapabilitiesPresentWait2KHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkSurfaceCapabilitiesPresentWait2KHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkSurfaceCapabilitiesPresentWait2KHR const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkSurfaceCapabilitiesPresentWait2KHR *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, presentWait2Supported ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( SurfaceCapabilitiesPresentWait2KHR const & ) const = default; +#else + bool operator==( SurfaceCapabilitiesPresentWait2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( presentWait2Supported == rhs.presentWait2Supported ); +#endif + } + + bool operator!=( SurfaceCapabilitiesPresentWait2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilitiesPresentWait2KHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 presentWait2Supported = {}; + + }; + + template <> + struct CppType + { + using Type = SurfaceCapabilitiesPresentWait2KHR; + }; + // wrapper struct for struct VkSurfaceFormatKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkSurfaceFormatKHR.html struct SurfaceFormatKHR { @@ -133277,6 +136902,850 @@ auto operator<=>( SwapchainPresentScalingCreateInfoEXT const & ) const = default using Type = SwapchainPresentScalingCreateInfoEXT; }; + // wrapper struct for struct VkTensorCaptureDescriptorDataInfoARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorCaptureDescriptorDataInfoARM.html + struct TensorCaptureDescriptorDataInfoARM + { + using NativeType = VkTensorCaptureDescriptorDataInfoARM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTensorCaptureDescriptorDataInfoARM; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR TensorCaptureDescriptorDataInfoARM(VULKAN_HPP_NAMESPACE::TensorARM tensor_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, tensor{ tensor_ } + {} + + VULKAN_HPP_CONSTEXPR TensorCaptureDescriptorDataInfoARM( TensorCaptureDescriptorDataInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + TensorCaptureDescriptorDataInfoARM( VkTensorCaptureDescriptorDataInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT + : TensorCaptureDescriptorDataInfoARM( *reinterpret_cast( &rhs ) ) + {} + + + + TensorCaptureDescriptorDataInfoARM & operator=( TensorCaptureDescriptorDataInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + TensorCaptureDescriptorDataInfoARM & operator=( VkTensorCaptureDescriptorDataInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 TensorCaptureDescriptorDataInfoARM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 TensorCaptureDescriptorDataInfoARM & setTensor( VULKAN_HPP_NAMESPACE::TensorARM tensor_ ) VULKAN_HPP_NOEXCEPT + { + tensor = tensor_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkTensorCaptureDescriptorDataInfoARM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkTensorCaptureDescriptorDataInfoARM &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkTensorCaptureDescriptorDataInfoARM const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkTensorCaptureDescriptorDataInfoARM *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, tensor ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( TensorCaptureDescriptorDataInfoARM const & ) const = default; +#else + bool operator==( TensorCaptureDescriptorDataInfoARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( tensor == rhs.tensor ); +#endif + } + + bool operator!=( TensorCaptureDescriptorDataInfoARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTensorCaptureDescriptorDataInfoARM; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::TensorARM tensor = {}; + + }; + + template <> + struct CppType + { + using Type = TensorCaptureDescriptorDataInfoARM; + }; + + // wrapper struct for struct VkTensorMemoryBarrierARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorMemoryBarrierARM.html + struct TensorMemoryBarrierARM + { + using NativeType = VkTensorMemoryBarrierARM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTensorMemoryBarrierARM; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR TensorMemoryBarrierARM(VULKAN_HPP_NAMESPACE::PipelineStageFlags2 srcStageMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags2 srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask_ = {}, uint32_t srcQueueFamilyIndex_ = {}, uint32_t dstQueueFamilyIndex_ = {}, VULKAN_HPP_NAMESPACE::TensorARM tensor_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, srcStageMask{ srcStageMask_ }, srcAccessMask{ srcAccessMask_ }, dstStageMask{ dstStageMask_ }, dstAccessMask{ dstAccessMask_ }, srcQueueFamilyIndex{ srcQueueFamilyIndex_ }, dstQueueFamilyIndex{ dstQueueFamilyIndex_ }, tensor{ tensor_ } + {} + + VULKAN_HPP_CONSTEXPR TensorMemoryBarrierARM( TensorMemoryBarrierARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + TensorMemoryBarrierARM( VkTensorMemoryBarrierARM const & rhs ) VULKAN_HPP_NOEXCEPT + : TensorMemoryBarrierARM( *reinterpret_cast( &rhs ) ) + {} + + + + TensorMemoryBarrierARM & operator=( TensorMemoryBarrierARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + TensorMemoryBarrierARM & operator=( VkTensorMemoryBarrierARM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 TensorMemoryBarrierARM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 TensorMemoryBarrierARM & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 srcStageMask_ ) VULKAN_HPP_NOEXCEPT + { + srcStageMask = srcStageMask_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 TensorMemoryBarrierARM & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2 srcAccessMask_ ) VULKAN_HPP_NOEXCEPT + { + srcAccessMask = srcAccessMask_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 TensorMemoryBarrierARM & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask_ ) VULKAN_HPP_NOEXCEPT + { + dstStageMask = dstStageMask_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 TensorMemoryBarrierARM & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask_ ) VULKAN_HPP_NOEXCEPT + { + dstAccessMask = dstAccessMask_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 TensorMemoryBarrierARM & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT + { + srcQueueFamilyIndex = srcQueueFamilyIndex_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 TensorMemoryBarrierARM & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT + { + dstQueueFamilyIndex = dstQueueFamilyIndex_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 TensorMemoryBarrierARM & setTensor( VULKAN_HPP_NAMESPACE::TensorARM tensor_ ) VULKAN_HPP_NOEXCEPT + { + tensor = tensor_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkTensorMemoryBarrierARM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkTensorMemoryBarrierARM &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkTensorMemoryBarrierARM const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkTensorMemoryBarrierARM *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, srcStageMask, srcAccessMask, dstStageMask, dstAccessMask, srcQueueFamilyIndex, dstQueueFamilyIndex, tensor ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( TensorMemoryBarrierARM const & ) const = default; +#else + bool operator==( TensorMemoryBarrierARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( srcStageMask == rhs.srcStageMask ) + && ( srcAccessMask == rhs.srcAccessMask ) + && ( dstStageMask == rhs.dstStageMask ) + && ( dstAccessMask == rhs.dstAccessMask ) + && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex ) + && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex ) + && ( tensor == rhs.tensor ); +#endif + } + + bool operator!=( TensorMemoryBarrierARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTensorMemoryBarrierARM; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineStageFlags2 srcStageMask = {}; + VULKAN_HPP_NAMESPACE::AccessFlags2 srcAccessMask = {}; + VULKAN_HPP_NAMESPACE::PipelineStageFlags2 dstStageMask = {}; + VULKAN_HPP_NAMESPACE::AccessFlags2 dstAccessMask = {}; + uint32_t srcQueueFamilyIndex = {}; + uint32_t dstQueueFamilyIndex = {}; + VULKAN_HPP_NAMESPACE::TensorARM tensor = {}; + + }; + + template <> + struct CppType + { + using Type = TensorMemoryBarrierARM; + }; + + // wrapper struct for struct VkTensorDependencyInfoARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorDependencyInfoARM.html + struct TensorDependencyInfoARM + { + using NativeType = VkTensorDependencyInfoARM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTensorDependencyInfoARM; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR TensorDependencyInfoARM(uint32_t tensorMemoryBarrierCount_ = {}, const VULKAN_HPP_NAMESPACE::TensorMemoryBarrierARM * pTensorMemoryBarriers_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, tensorMemoryBarrierCount{ tensorMemoryBarrierCount_ }, pTensorMemoryBarriers{ pTensorMemoryBarriers_ } + {} + + VULKAN_HPP_CONSTEXPR TensorDependencyInfoARM( TensorDependencyInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + TensorDependencyInfoARM( VkTensorDependencyInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT + : TensorDependencyInfoARM( *reinterpret_cast( &rhs ) ) + {} + + + + TensorDependencyInfoARM & operator=( TensorDependencyInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + TensorDependencyInfoARM & operator=( VkTensorDependencyInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 TensorDependencyInfoARM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 TensorDependencyInfoARM & setTensorMemoryBarrierCount( uint32_t tensorMemoryBarrierCount_ ) VULKAN_HPP_NOEXCEPT + { + tensorMemoryBarrierCount = tensorMemoryBarrierCount_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 TensorDependencyInfoARM & setPTensorMemoryBarriers( const VULKAN_HPP_NAMESPACE::TensorMemoryBarrierARM * pTensorMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT + { + pTensorMemoryBarriers = pTensorMemoryBarriers_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkTensorDependencyInfoARM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkTensorDependencyInfoARM &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkTensorDependencyInfoARM const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkTensorDependencyInfoARM *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, tensorMemoryBarrierCount, pTensorMemoryBarriers ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( TensorDependencyInfoARM const & ) const = default; +#else + bool operator==( TensorDependencyInfoARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( tensorMemoryBarrierCount == rhs.tensorMemoryBarrierCount ) + && ( pTensorMemoryBarriers == rhs.pTensorMemoryBarriers ); +#endif + } + + bool operator!=( TensorDependencyInfoARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTensorDependencyInfoARM; + const void * pNext = {}; + uint32_t tensorMemoryBarrierCount = {}; + const VULKAN_HPP_NAMESPACE::TensorMemoryBarrierARM * pTensorMemoryBarriers = {}; + + }; + + template <> + struct CppType + { + using Type = TensorDependencyInfoARM; + }; + + // wrapper struct for struct VkTensorFormatPropertiesARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorFormatPropertiesARM.html + struct TensorFormatPropertiesARM + { + using NativeType = VkTensorFormatPropertiesARM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTensorFormatPropertiesARM; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR TensorFormatPropertiesARM(VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 optimalTilingTensorFeatures_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 linearTilingTensorFeatures_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, optimalTilingTensorFeatures{ optimalTilingTensorFeatures_ }, linearTilingTensorFeatures{ linearTilingTensorFeatures_ } + {} + + VULKAN_HPP_CONSTEXPR TensorFormatPropertiesARM( TensorFormatPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + TensorFormatPropertiesARM( VkTensorFormatPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT + : TensorFormatPropertiesARM( *reinterpret_cast( &rhs ) ) + {} + + + + TensorFormatPropertiesARM & operator=( TensorFormatPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + TensorFormatPropertiesARM & operator=( VkTensorFormatPropertiesARM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + + operator VkTensorFormatPropertiesARM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkTensorFormatPropertiesARM &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkTensorFormatPropertiesARM const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkTensorFormatPropertiesARM *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, optimalTilingTensorFeatures, linearTilingTensorFeatures ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( TensorFormatPropertiesARM const & ) const = default; +#else + bool operator==( TensorFormatPropertiesARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( optimalTilingTensorFeatures == rhs.optimalTilingTensorFeatures ) + && ( linearTilingTensorFeatures == rhs.linearTilingTensorFeatures ); +#endif + } + + bool operator!=( TensorFormatPropertiesARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTensorFormatPropertiesARM; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 optimalTilingTensorFeatures = {}; + VULKAN_HPP_NAMESPACE::FormatFeatureFlags2 linearTilingTensorFeatures = {}; + + }; + + template <> + struct CppType + { + using Type = TensorFormatPropertiesARM; + }; + + // wrapper struct for struct VkTensorMemoryRequirementsInfoARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorMemoryRequirementsInfoARM.html + struct TensorMemoryRequirementsInfoARM + { + using NativeType = VkTensorMemoryRequirementsInfoARM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTensorMemoryRequirementsInfoARM; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR TensorMemoryRequirementsInfoARM(VULKAN_HPP_NAMESPACE::TensorARM tensor_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, tensor{ tensor_ } + {} + + VULKAN_HPP_CONSTEXPR TensorMemoryRequirementsInfoARM( TensorMemoryRequirementsInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + TensorMemoryRequirementsInfoARM( VkTensorMemoryRequirementsInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT + : TensorMemoryRequirementsInfoARM( *reinterpret_cast( &rhs ) ) + {} + + + + TensorMemoryRequirementsInfoARM & operator=( TensorMemoryRequirementsInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + TensorMemoryRequirementsInfoARM & operator=( VkTensorMemoryRequirementsInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 TensorMemoryRequirementsInfoARM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 TensorMemoryRequirementsInfoARM & setTensor( VULKAN_HPP_NAMESPACE::TensorARM tensor_ ) VULKAN_HPP_NOEXCEPT + { + tensor = tensor_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkTensorMemoryRequirementsInfoARM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkTensorMemoryRequirementsInfoARM &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkTensorMemoryRequirementsInfoARM const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkTensorMemoryRequirementsInfoARM *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, tensor ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( TensorMemoryRequirementsInfoARM const & ) const = default; +#else + bool operator==( TensorMemoryRequirementsInfoARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( tensor == rhs.tensor ); +#endif + } + + bool operator!=( TensorMemoryRequirementsInfoARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTensorMemoryRequirementsInfoARM; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::TensorARM tensor = {}; + + }; + + template <> + struct CppType + { + using Type = TensorMemoryRequirementsInfoARM; + }; + + // wrapper struct for struct VkTensorViewCaptureDescriptorDataInfoARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorViewCaptureDescriptorDataInfoARM.html + struct TensorViewCaptureDescriptorDataInfoARM + { + using NativeType = VkTensorViewCaptureDescriptorDataInfoARM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTensorViewCaptureDescriptorDataInfoARM; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR TensorViewCaptureDescriptorDataInfoARM(VULKAN_HPP_NAMESPACE::TensorViewARM tensorView_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, tensorView{ tensorView_ } + {} + + VULKAN_HPP_CONSTEXPR TensorViewCaptureDescriptorDataInfoARM( TensorViewCaptureDescriptorDataInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + TensorViewCaptureDescriptorDataInfoARM( VkTensorViewCaptureDescriptorDataInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT + : TensorViewCaptureDescriptorDataInfoARM( *reinterpret_cast( &rhs ) ) + {} + + + + TensorViewCaptureDescriptorDataInfoARM & operator=( TensorViewCaptureDescriptorDataInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + TensorViewCaptureDescriptorDataInfoARM & operator=( VkTensorViewCaptureDescriptorDataInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 TensorViewCaptureDescriptorDataInfoARM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 TensorViewCaptureDescriptorDataInfoARM & setTensorView( VULKAN_HPP_NAMESPACE::TensorViewARM tensorView_ ) VULKAN_HPP_NOEXCEPT + { + tensorView = tensorView_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkTensorViewCaptureDescriptorDataInfoARM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkTensorViewCaptureDescriptorDataInfoARM &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkTensorViewCaptureDescriptorDataInfoARM const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkTensorViewCaptureDescriptorDataInfoARM *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, tensorView ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( TensorViewCaptureDescriptorDataInfoARM const & ) const = default; +#else + bool operator==( TensorViewCaptureDescriptorDataInfoARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( tensorView == rhs.tensorView ); +#endif + } + + bool operator!=( TensorViewCaptureDescriptorDataInfoARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTensorViewCaptureDescriptorDataInfoARM; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::TensorViewARM tensorView = {}; + + }; + + template <> + struct CppType + { + using Type = TensorViewCaptureDescriptorDataInfoARM; + }; + + // wrapper struct for struct VkTensorViewCreateInfoARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkTensorViewCreateInfoARM.html + struct TensorViewCreateInfoARM + { + using NativeType = VkTensorViewCreateInfoARM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTensorViewCreateInfoARM; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR TensorViewCreateInfoARM(VULKAN_HPP_NAMESPACE::TensorViewCreateFlagsARM flags_ = {}, VULKAN_HPP_NAMESPACE::TensorARM tensor_ = {}, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, flags{ flags_ }, tensor{ tensor_ }, format{ format_ } + {} + + VULKAN_HPP_CONSTEXPR TensorViewCreateInfoARM( TensorViewCreateInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + TensorViewCreateInfoARM( VkTensorViewCreateInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT + : TensorViewCreateInfoARM( *reinterpret_cast( &rhs ) ) + {} + + + + TensorViewCreateInfoARM & operator=( TensorViewCreateInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + TensorViewCreateInfoARM & operator=( VkTensorViewCreateInfoARM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 TensorViewCreateInfoARM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 TensorViewCreateInfoARM & setFlags( VULKAN_HPP_NAMESPACE::TensorViewCreateFlagsARM flags_ ) VULKAN_HPP_NOEXCEPT + { + flags = flags_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 TensorViewCreateInfoARM & setTensor( VULKAN_HPP_NAMESPACE::TensorARM tensor_ ) VULKAN_HPP_NOEXCEPT + { + tensor = tensor_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 TensorViewCreateInfoARM & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT + { + format = format_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkTensorViewCreateInfoARM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkTensorViewCreateInfoARM &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkTensorViewCreateInfoARM const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkTensorViewCreateInfoARM *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, flags, tensor, format ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( TensorViewCreateInfoARM const & ) const = default; +#else + bool operator==( TensorViewCreateInfoARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( flags == rhs.flags ) + && ( tensor == rhs.tensor ) + && ( format == rhs.format ); +#endif + } + + bool operator!=( TensorViewCreateInfoARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTensorViewCreateInfoARM; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::TensorViewCreateFlagsARM flags = {}; + VULKAN_HPP_NAMESPACE::TensorARM tensor = {}; + VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; + + }; + + template <> + struct CppType + { + using Type = TensorViewCreateInfoARM; + }; + // wrapper struct for struct VkTextureLODGatherFormatPropertiesAMD, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkTextureLODGatherFormatPropertiesAMD.html struct TextureLODGatherFormatPropertiesAMD { @@ -138755,6 +143224,368 @@ auto operator<=>( VideoDecodeUsageInfoKHR const & ) const = default; using Type = VideoDecodeUsageInfoKHR; }; + // wrapper struct for struct VkVideoDecodeVP9CapabilitiesKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeVP9CapabilitiesKHR.html + struct VideoDecodeVP9CapabilitiesKHR + { + using NativeType = VkVideoDecodeVP9CapabilitiesKHR; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeVp9CapabilitiesKHR; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR VideoDecodeVP9CapabilitiesKHR(StdVideoVP9Level maxLevel_ = {}, void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, maxLevel{ maxLevel_ } + {} + + VULKAN_HPP_CONSTEXPR VideoDecodeVP9CapabilitiesKHR( VideoDecodeVP9CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeVP9CapabilitiesKHR( VkVideoDecodeVP9CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoDecodeVP9CapabilitiesKHR( *reinterpret_cast( &rhs ) ) + {} + + + + VideoDecodeVP9CapabilitiesKHR & operator=( VideoDecodeVP9CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + VideoDecodeVP9CapabilitiesKHR & operator=( VkVideoDecodeVP9CapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + + operator VkVideoDecodeVP9CapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoDecodeVP9CapabilitiesKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoDecodeVP9CapabilitiesKHR const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkVideoDecodeVP9CapabilitiesKHR *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, maxLevel ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) + std::strong_ordering operator<=>( VideoDecodeVP9CapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp; + if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp; + if ( auto cmp = memcmp( &maxLevel, &rhs.maxLevel, sizeof( StdVideoVP9Level ) ); cmp != 0 ) + return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater; + + return std::strong_ordering::equivalent; + } +#endif + + bool operator==( VideoDecodeVP9CapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( memcmp( &maxLevel, &rhs.maxLevel, sizeof( StdVideoVP9Level ) ) == 0 ); + } + + bool operator!=( VideoDecodeVP9CapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeVp9CapabilitiesKHR; + void * pNext = {}; + StdVideoVP9Level maxLevel = {}; + + }; + + template <> + struct CppType + { + using Type = VideoDecodeVP9CapabilitiesKHR; + }; + + // wrapper struct for struct VkVideoDecodeVP9PictureInfoKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeVP9PictureInfoKHR.html + struct VideoDecodeVP9PictureInfoKHR + { + using NativeType = VkVideoDecodeVP9PictureInfoKHR; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeVp9PictureInfoKHR; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR_14 VideoDecodeVP9PictureInfoKHR(const StdVideoDecodeVP9PictureInfo * pStdPictureInfo_ = {}, std::array const & referenceNameSlotIndices_ = {}, uint32_t uncompressedHeaderOffset_ = {}, uint32_t compressedHeaderOffset_ = {}, uint32_t tilesOffset_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, pStdPictureInfo{ pStdPictureInfo_ }, referenceNameSlotIndices{ referenceNameSlotIndices_ }, uncompressedHeaderOffset{ uncompressedHeaderOffset_ }, compressedHeaderOffset{ compressedHeaderOffset_ }, tilesOffset{ tilesOffset_ } + {} + + VULKAN_HPP_CONSTEXPR_14 VideoDecodeVP9PictureInfoKHR( VideoDecodeVP9PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeVP9PictureInfoKHR( VkVideoDecodeVP9PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoDecodeVP9PictureInfoKHR( *reinterpret_cast( &rhs ) ) + {} + + + + VideoDecodeVP9PictureInfoKHR & operator=( VideoDecodeVP9PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + VideoDecodeVP9PictureInfoKHR & operator=( VkVideoDecodeVP9PictureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 VideoDecodeVP9PictureInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 VideoDecodeVP9PictureInfoKHR & setPStdPictureInfo( const StdVideoDecodeVP9PictureInfo * pStdPictureInfo_ ) VULKAN_HPP_NOEXCEPT + { + pStdPictureInfo = pStdPictureInfo_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 VideoDecodeVP9PictureInfoKHR & setReferenceNameSlotIndices( std::array referenceNameSlotIndices_ ) VULKAN_HPP_NOEXCEPT + { + referenceNameSlotIndices = referenceNameSlotIndices_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 VideoDecodeVP9PictureInfoKHR & setUncompressedHeaderOffset( uint32_t uncompressedHeaderOffset_ ) VULKAN_HPP_NOEXCEPT + { + uncompressedHeaderOffset = uncompressedHeaderOffset_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 VideoDecodeVP9PictureInfoKHR & setCompressedHeaderOffset( uint32_t compressedHeaderOffset_ ) VULKAN_HPP_NOEXCEPT + { + compressedHeaderOffset = compressedHeaderOffset_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 VideoDecodeVP9PictureInfoKHR & setTilesOffset( uint32_t tilesOffset_ ) VULKAN_HPP_NOEXCEPT + { + tilesOffset = tilesOffset_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkVideoDecodeVP9PictureInfoKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoDecodeVP9PictureInfoKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoDecodeVP9PictureInfoKHR const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkVideoDecodeVP9PictureInfoKHR *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple const &, uint32_t const &, uint32_t const &, uint32_t const &> +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, pStdPictureInfo, referenceNameSlotIndices, uncompressedHeaderOffset, compressedHeaderOffset, tilesOffset ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( VideoDecodeVP9PictureInfoKHR const & ) const = default; +#else + bool operator==( VideoDecodeVP9PictureInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( pStdPictureInfo == rhs.pStdPictureInfo ) + && ( referenceNameSlotIndices == rhs.referenceNameSlotIndices ) + && ( uncompressedHeaderOffset == rhs.uncompressedHeaderOffset ) + && ( compressedHeaderOffset == rhs.compressedHeaderOffset ) + && ( tilesOffset == rhs.tilesOffset ); +#endif + } + + bool operator!=( VideoDecodeVP9PictureInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeVp9PictureInfoKHR; + const void * pNext = {}; + const StdVideoDecodeVP9PictureInfo * pStdPictureInfo = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D referenceNameSlotIndices = {}; + uint32_t uncompressedHeaderOffset = {}; + uint32_t compressedHeaderOffset = {}; + uint32_t tilesOffset = {}; + + }; + + template <> + struct CppType + { + using Type = VideoDecodeVP9PictureInfoKHR; + }; + + // wrapper struct for struct VkVideoDecodeVP9ProfileInfoKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoDecodeVP9ProfileInfoKHR.html + struct VideoDecodeVP9ProfileInfoKHR + { + using NativeType = VkVideoDecodeVP9ProfileInfoKHR; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeVp9ProfileInfoKHR; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR VideoDecodeVP9ProfileInfoKHR(StdVideoVP9Profile stdProfile_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, stdProfile{ stdProfile_ } + {} + + VULKAN_HPP_CONSTEXPR VideoDecodeVP9ProfileInfoKHR( VideoDecodeVP9ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeVP9ProfileInfoKHR( VkVideoDecodeVP9ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoDecodeVP9ProfileInfoKHR( *reinterpret_cast( &rhs ) ) + {} + + + + VideoDecodeVP9ProfileInfoKHR & operator=( VideoDecodeVP9ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + VideoDecodeVP9ProfileInfoKHR & operator=( VkVideoDecodeVP9ProfileInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 VideoDecodeVP9ProfileInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 VideoDecodeVP9ProfileInfoKHR & setStdProfile( StdVideoVP9Profile stdProfile_ ) VULKAN_HPP_NOEXCEPT + { + stdProfile = stdProfile_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkVideoDecodeVP9ProfileInfoKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoDecodeVP9ProfileInfoKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoDecodeVP9ProfileInfoKHR const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkVideoDecodeVP9ProfileInfoKHR *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, stdProfile ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) + std::strong_ordering operator<=>( VideoDecodeVP9ProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + if ( auto cmp = sType <=> rhs.sType; cmp != 0 ) return cmp; + if ( auto cmp = pNext <=> rhs.pNext; cmp != 0 ) return cmp; + if ( auto cmp = memcmp( &stdProfile, &rhs.stdProfile, sizeof( StdVideoVP9Profile ) ); cmp != 0 ) + return ( cmp < 0 ) ? std::strong_ordering::less : std::strong_ordering::greater; + + return std::strong_ordering::equivalent; + } +#endif + + bool operator==( VideoDecodeVP9ProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( memcmp( &stdProfile, &rhs.stdProfile, sizeof( StdVideoVP9Profile ) ) == 0 ); + } + + bool operator!=( VideoDecodeVP9ProfileInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeVp9ProfileInfoKHR; + const void * pNext = {}; + StdVideoVP9Profile stdProfile = {}; + + }; + + template <> + struct CppType + { + using Type = VideoDecodeVP9ProfileInfoKHR; + }; + // wrapper struct for struct VkVideoEncodeAV1CapabilitiesKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkVideoEncodeAV1CapabilitiesKHR.html struct VideoEncodeAV1CapabilitiesKHR { @@ -148890,6 +153721,141 @@ auto operator<=>( WriteDescriptorSetPartitionedAccelerationStructureNV const & ) using Type = WriteDescriptorSetPartitionedAccelerationStructureNV; }; + // wrapper struct for struct VkWriteDescriptorSetTensorARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkWriteDescriptorSetTensorARM.html + struct WriteDescriptorSetTensorARM + { + using NativeType = VkWriteDescriptorSetTensorARM; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSetTensorARM; + + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) +VULKAN_HPP_CONSTEXPR WriteDescriptorSetTensorARM(uint32_t tensorViewCount_ = {}, const VULKAN_HPP_NAMESPACE::TensorViewARM * pTensorViews_ = {}, const void * pNext_ = nullptr) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ }, tensorViewCount{ tensorViewCount_ }, pTensorViews{ pTensorViews_ } + {} + + VULKAN_HPP_CONSTEXPR WriteDescriptorSetTensorARM( WriteDescriptorSetTensorARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + WriteDescriptorSetTensorARM( VkWriteDescriptorSetTensorARM const & rhs ) VULKAN_HPP_NOEXCEPT + : WriteDescriptorSetTensorARM( *reinterpret_cast( &rhs ) ) + {} + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + WriteDescriptorSetTensorARM( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & tensorViews_, const void * pNext_ = nullptr ) + : pNext( pNext_ ), tensorViewCount( static_cast( tensorViews_.size() ) ), pTensorViews( tensorViews_.data() ) + {} +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + + + WriteDescriptorSetTensorARM & operator=( WriteDescriptorSetTensorARM const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + WriteDescriptorSetTensorARM & operator=( VkWriteDescriptorSetTensorARM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetTensorARM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetTensorARM & setTensorViewCount( uint32_t tensorViewCount_ ) VULKAN_HPP_NOEXCEPT + { + tensorViewCount = tensorViewCount_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetTensorARM & setPTensorViews( const VULKAN_HPP_NAMESPACE::TensorViewARM * pTensorViews_ ) VULKAN_HPP_NOEXCEPT + { + pTensorViews = pTensorViews_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + WriteDescriptorSetTensorARM & setTensorViews( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & tensorViews_ ) VULKAN_HPP_NOEXCEPT + { + tensorViewCount = static_cast( tensorViews_.size() ); + pTensorViews = tensorViews_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_SETTERS*/ + + + operator VkWriteDescriptorSetTensorARM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkWriteDescriptorSetTensorARM &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkWriteDescriptorSetTensorARM const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkWriteDescriptorSetTensorARM *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) +#if 14 <= VULKAN_HPP_CPP_VERSION + auto +#else + std::tuple +#endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, tensorViewCount, pTensorViews ); + } +#endif + + +#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) +auto operator<=>( WriteDescriptorSetTensorARM const & ) const = default; +#else + bool operator==( WriteDescriptorSetTensorARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { +#if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +#else + return ( sType == rhs.sType ) + && ( pNext == rhs.pNext ) + && ( tensorViewCount == rhs.tensorViewCount ) + && ( pTensorViews == rhs.pTensorViews ); +#endif + } + + bool operator!=( WriteDescriptorSetTensorARM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetTensorARM; + const void * pNext = {}; + uint32_t tensorViewCount = {}; + const VULKAN_HPP_NAMESPACE::TensorViewARM * pTensorViews = {}; + + }; + + template <> + struct CppType + { + using Type = WriteDescriptorSetTensorARM; + }; + // wrapper struct for struct VkWriteIndirectExecutionSetPipelineEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkWriteIndirectExecutionSetPipelineEXT.html struct WriteIndirectExecutionSetPipelineEXT { diff --git a/include/vulkan/vulkan_to_string.hpp b/include/vulkan/vulkan_to_string.hpp index 49ec777..0f49642 100644 --- a/include/vulkan/vulkan_to_string.hpp +++ b/include/vulkan/vulkan_to_string.hpp @@ -136,6 +136,7 @@ namespace VULKAN_HPP_NAMESPACE if ( value & ImageUsageFlagBits::eInvocationMaskHUAWEI ) result += " InvocationMaskHUAWEI |"; if ( value & ImageUsageFlagBits::eSampleWeightQCOM ) result += " SampleWeightQCOM |"; if ( value & ImageUsageFlagBits::eSampleBlockMatchQCOM ) result += " SampleBlockMatchQCOM |"; + if ( value & ImageUsageFlagBits::eTensorAliasingARM ) result += " TensorAliasingARM |"; if ( value & ImageUsageFlagBits::eTileMemoryQCOM ) result += " TileMemoryQCOM |"; if ( value & ImageUsageFlagBits::eVideoEncodeQuantizationDeltaMapKHR ) result += " VideoEncodeQuantizationDeltaMapKHR |"; if ( value & ImageUsageFlagBits::eVideoEncodeEmphasisMapKHR ) result += " VideoEncodeEmphasisMapKHR |"; @@ -398,9 +399,16 @@ namespace VULKAN_HPP_NAMESPACE return result; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 std::string to_string( QueryPoolCreateFlags ) + VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlags value ) { - return "{}"; + std::string result = "{"; + if ( value & QueryPoolCreateFlagBits::eResetKHR ) result += " ResetKHR |"; + + if ( result.size() > 1 ) + result.back() = '}'; + else + result = "{}"; + return result; } VULKAN_HPP_INLINE std::string to_string( QueryResultFlags value ) @@ -812,6 +820,7 @@ namespace VULKAN_HPP_NAMESPACE if ( value & DependencyFlagBits::eViewLocal ) result += " ViewLocal |"; if ( value & DependencyFlagBits::eFeedbackLoopEXT ) result += " FeedbackLoopEXT |"; if ( value & DependencyFlagBits::eQueueFamilyOwnershipTransferUseAllStagesKHR ) result += " QueueFamilyOwnershipTransferUseAllStagesKHR |"; + if ( value & DependencyFlagBits::eAsymmetricEventKHR ) result += " AsymmetricEventKHR |"; if ( result.size() > 1 ) result.back() = '}'; @@ -1405,6 +1414,8 @@ namespace VULKAN_HPP_NAMESPACE if ( value & FormatFeatureFlagBits2::eWeightSampledImageQCOM ) result += " WeightSampledImageQCOM |"; if ( value & FormatFeatureFlagBits2::eBlockMatchingQCOM ) result += " BlockMatchingQCOM |"; if ( value & FormatFeatureFlagBits2::eBoxFilterSampledQCOM ) result += " BoxFilterSampledQCOM |"; + if ( value & FormatFeatureFlagBits2::eTensorShaderARM ) result += " TensorShaderARM |"; + if ( value & FormatFeatureFlagBits2::eTensorImageAliasingARM ) result += " TensorImageAliasingARM |"; if ( value & FormatFeatureFlagBits2::eOpticalFlowImageNV ) result += " OpticalFlowImageNV |"; if ( value & FormatFeatureFlagBits2::eOpticalFlowVectorNV ) result += " OpticalFlowVectorNV |"; if ( value & FormatFeatureFlagBits2::eOpticalFlowCostNV ) result += " OpticalFlowCostNV |"; @@ -1561,6 +1572,8 @@ namespace VULKAN_HPP_NAMESPACE if ( value & SwapchainCreateFlagBitsKHR::eProtected ) result += " Protected |"; if ( value & SwapchainCreateFlagBitsKHR::eMutableFormat ) result += " MutableFormat |"; if ( value & SwapchainCreateFlagBitsKHR::eDeferredMemoryAllocationEXT ) result += " DeferredMemoryAllocationEXT |"; + if ( value & SwapchainCreateFlagBitsKHR::ePresentId2 ) result += " PresentId2 |"; + if ( value & SwapchainCreateFlagBitsKHR::ePresentWait2 ) result += " PresentWait2 |"; if ( result.size() > 1 ) result.back() = '}'; @@ -1705,6 +1718,7 @@ namespace VULKAN_HPP_NAMESPACE if ( value & VideoCodecOperationFlagBitsKHR::eDecodeH265 ) result += " DecodeH265 |"; if ( value & VideoCodecOperationFlagBitsKHR::eDecodeAv1 ) result += " DecodeAv1 |"; if ( value & VideoCodecOperationFlagBitsKHR::eEncodeAv1 ) result += " EncodeAv1 |"; + if ( value & VideoCodecOperationFlagBitsKHR::eDecodeVp9 ) result += " DecodeVp9 |"; if ( result.size() > 1 ) result.back() = '}'; @@ -2781,6 +2795,49 @@ namespace VULKAN_HPP_NAMESPACE return "{}"; } + //=== VK_ARM_tensors === + + VULKAN_HPP_INLINE std::string to_string( TensorCreateFlagsARM value ) + { + std::string result = "{"; + if ( value & TensorCreateFlagBitsARM::eMutableFormat ) result += " MutableFormat |"; + if ( value & TensorCreateFlagBitsARM::eProtected ) result += " Protected |"; + if ( value & TensorCreateFlagBitsARM::eDescriptorBufferCaptureReplay ) result += " DescriptorBufferCaptureReplay |"; + + if ( result.size() > 1 ) + result.back() = '}'; + else + result = "{}"; + return result; + } + + VULKAN_HPP_INLINE std::string to_string( TensorViewCreateFlagsARM value ) + { + std::string result = "{"; + if ( value & TensorViewCreateFlagBitsARM::eDescriptorBufferCaptureReplay ) result += " DescriptorBufferCaptureReplay |"; + + if ( result.size() > 1 ) + result.back() = '}'; + else + result = "{}"; + return result; + } + + VULKAN_HPP_INLINE std::string to_string( TensorUsageFlagsARM value ) + { + std::string result = "{"; + if ( value & TensorUsageFlagBitsARM::eShader ) result += " Shader |"; + if ( value & TensorUsageFlagBitsARM::eTransferSrc ) result += " TransferSrc |"; + if ( value & TensorUsageFlagBitsARM::eTransferDst ) result += " TransferDst |"; + if ( value & TensorUsageFlagBitsARM::eImageAliasing ) result += " ImageAliasing |"; + + if ( result.size() > 1 ) + result.back() = '}'; + else + result = "{}"; + return result; + } + //=== VK_NV_optical_flow === VULKAN_HPP_INLINE std::string to_string( OpticalFlowUsageFlagsNV value ) @@ -3994,6 +4051,30 @@ namespace VULKAN_HPP_NAMESPACE case StructureType::eRenderPassSubpassFeedbackCreateInfoEXT : return "RenderPassSubpassFeedbackCreateInfoEXT"; case StructureType::eDirectDriverLoadingInfoLUNARG : return "DirectDriverLoadingInfoLUNARG"; case StructureType::eDirectDriverLoadingListLUNARG : return "DirectDriverLoadingListLUNARG"; + case StructureType::eTensorCreateInfoARM : return "TensorCreateInfoARM"; + case StructureType::eTensorViewCreateInfoARM : return "TensorViewCreateInfoARM"; + case StructureType::eBindTensorMemoryInfoARM : return "BindTensorMemoryInfoARM"; + case StructureType::eWriteDescriptorSetTensorARM : return "WriteDescriptorSetTensorARM"; + case StructureType::ePhysicalDeviceTensorPropertiesARM : return "PhysicalDeviceTensorPropertiesARM"; + case StructureType::eTensorFormatPropertiesARM : return "TensorFormatPropertiesARM"; + case StructureType::eTensorDescriptionARM : return "TensorDescriptionARM"; + case StructureType::eTensorMemoryRequirementsInfoARM : return "TensorMemoryRequirementsInfoARM"; + case StructureType::eTensorMemoryBarrierARM : return "TensorMemoryBarrierARM"; + case StructureType::ePhysicalDeviceTensorFeaturesARM : return "PhysicalDeviceTensorFeaturesARM"; + case StructureType::eDeviceTensorMemoryRequirementsARM : return "DeviceTensorMemoryRequirementsARM"; + case StructureType::eCopyTensorInfoARM : return "CopyTensorInfoARM"; + case StructureType::eTensorCopyARM : return "TensorCopyARM"; + case StructureType::eTensorDependencyInfoARM : return "TensorDependencyInfoARM"; + case StructureType::eMemoryDedicatedAllocateInfoTensorARM : return "MemoryDedicatedAllocateInfoTensorARM"; + case StructureType::ePhysicalDeviceExternalTensorInfoARM : return "PhysicalDeviceExternalTensorInfoARM"; + case StructureType::eExternalTensorPropertiesARM : return "ExternalTensorPropertiesARM"; + case StructureType::eExternalMemoryTensorCreateInfoARM : return "ExternalMemoryTensorCreateInfoARM"; + case StructureType::ePhysicalDeviceDescriptorBufferTensorFeaturesARM : return "PhysicalDeviceDescriptorBufferTensorFeaturesARM"; + case StructureType::ePhysicalDeviceDescriptorBufferTensorPropertiesARM : return "PhysicalDeviceDescriptorBufferTensorPropertiesARM"; + case StructureType::eDescriptorGetTensorInfoARM : return "DescriptorGetTensorInfoARM"; + case StructureType::eTensorCaptureDescriptorDataInfoARM : return "TensorCaptureDescriptorDataInfoARM"; + case StructureType::eTensorViewCaptureDescriptorDataInfoARM : return "TensorViewCaptureDescriptorDataInfoARM"; + case StructureType::eFrameBoundaryTensorsARM : return "FrameBoundaryTensorsARM"; case StructureType::ePhysicalDeviceShaderModuleIdentifierFeaturesEXT : return "PhysicalDeviceShaderModuleIdentifierFeaturesEXT"; case StructureType::ePhysicalDeviceShaderModuleIdentifierPropertiesEXT : return "PhysicalDeviceShaderModuleIdentifierPropertiesEXT"; case StructureType::ePipelineShaderStageModuleIdentifierCreateInfoEXT : return "PipelineShaderStageModuleIdentifierCreateInfoEXT"; @@ -4015,6 +4096,12 @@ namespace VULKAN_HPP_NAMESPACE case StructureType::ePhysicalDeviceAntiLagFeaturesAMD : return "PhysicalDeviceAntiLagFeaturesAMD"; case StructureType::eAntiLagDataAMD : return "AntiLagDataAMD"; case StructureType::eAntiLagPresentationInfoAMD : return "AntiLagPresentationInfoAMD"; + case StructureType::eSurfaceCapabilitiesPresentId2KHR : return "SurfaceCapabilitiesPresentId2KHR"; + case StructureType::ePresentId2KHR : return "PresentId2KHR"; + case StructureType::ePhysicalDevicePresentId2FeaturesKHR : return "PhysicalDevicePresentId2FeaturesKHR"; + case StructureType::eSurfaceCapabilitiesPresentWait2KHR : return "SurfaceCapabilitiesPresentWait2KHR"; + case StructureType::ePhysicalDevicePresentWait2FeaturesKHR : return "PhysicalDevicePresentWait2FeaturesKHR"; + case StructureType::ePresentWait2InfoKHR : return "PresentWait2InfoKHR"; case StructureType::ePhysicalDeviceRayTracingPositionFetchFeaturesKHR : return "PhysicalDeviceRayTracingPositionFetchFeaturesKHR"; case StructureType::ePhysicalDeviceShaderObjectFeaturesEXT : return "PhysicalDeviceShaderObjectFeaturesEXT"; case StructureType::ePhysicalDeviceShaderObjectPropertiesEXT : return "PhysicalDeviceShaderObjectPropertiesEXT"; @@ -4083,6 +4170,10 @@ namespace VULKAN_HPP_NAMESPACE case StructureType::eVideoEncodeAv1QualityLevelPropertiesKHR : return "VideoEncodeAv1QualityLevelPropertiesKHR"; case StructureType::eVideoEncodeAv1SessionCreateInfoKHR : return "VideoEncodeAv1SessionCreateInfoKHR"; case StructureType::eVideoEncodeAv1GopRemainingFrameInfoKHR : return "VideoEncodeAv1GopRemainingFrameInfoKHR"; + case StructureType::ePhysicalDeviceVideoDecodeVp9FeaturesKHR : return "PhysicalDeviceVideoDecodeVp9FeaturesKHR"; + case StructureType::eVideoDecodeVp9CapabilitiesKHR : return "VideoDecodeVp9CapabilitiesKHR"; + case StructureType::eVideoDecodeVp9PictureInfoKHR : return "VideoDecodeVp9PictureInfoKHR"; + case StructureType::eVideoDecodeVp9ProfileInfoKHR : return "VideoDecodeVp9ProfileInfoKHR"; case StructureType::ePhysicalDeviceVideoMaintenance1FeaturesKHR : return "PhysicalDeviceVideoMaintenance1FeaturesKHR"; case StructureType::eVideoInlineQueryInfoKHR : return "VideoInlineQueryInfoKHR"; case StructureType::ePhysicalDevicePerStageDescriptorSetFeaturesNV : return "PhysicalDevicePerStageDescriptorSetFeaturesNV"; @@ -4096,6 +4187,8 @@ namespace VULKAN_HPP_NAMESPACE case StructureType::eSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM : return "SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM"; case StructureType::ePhysicalDeviceCubicClampFeaturesQCOM : return "PhysicalDeviceCubicClampFeaturesQCOM"; case StructureType::ePhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT : return "PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT"; + case StructureType::ePhysicalDeviceUnifiedImageLayoutsFeaturesKHR : return "PhysicalDeviceUnifiedImageLayoutsFeaturesKHR"; + case StructureType::eAttachmentFeedbackLoopInfoEXT : return "AttachmentFeedbackLoopInfoEXT"; #if defined( VK_USE_PLATFORM_SCREEN_QNX ) case StructureType::eScreenBufferPropertiesQNX : return "ScreenBufferPropertiesQNX"; case StructureType::eScreenBufferFormatPropertiesQNX : return "ScreenBufferFormatPropertiesQNX"; @@ -4139,6 +4232,7 @@ namespace VULKAN_HPP_NAMESPACE case StructureType::ePhysicalDeviceLayeredApiVulkanPropertiesKHR : return "PhysicalDeviceLayeredApiVulkanPropertiesKHR"; case StructureType::ePhysicalDeviceShaderAtomicFloat16VectorFeaturesNV : return "PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV"; case StructureType::ePhysicalDeviceShaderReplicatedCompositesFeaturesEXT : return "PhysicalDeviceShaderReplicatedCompositesFeaturesEXT"; + case StructureType::ePhysicalDeviceShaderFloat8FeaturesEXT : return "PhysicalDeviceShaderFloat8FeaturesEXT"; case StructureType::ePhysicalDeviceRayTracingValidationFeaturesNV : return "PhysicalDeviceRayTracingValidationFeaturesNV"; case StructureType::ePhysicalDeviceClusterAccelerationStructureFeaturesNV : return "PhysicalDeviceClusterAccelerationStructureFeaturesNV"; case StructureType::ePhysicalDeviceClusterAccelerationStructurePropertiesNV : return "PhysicalDeviceClusterAccelerationStructurePropertiesNV"; @@ -4175,6 +4269,9 @@ namespace VULKAN_HPP_NAMESPACE case StructureType::eImageAlignmentControlCreateInfoMESA : return "ImageAlignmentControlCreateInfoMESA"; case StructureType::ePhysicalDeviceDepthClampControlFeaturesEXT : return "PhysicalDeviceDepthClampControlFeaturesEXT"; case StructureType::ePipelineViewportDepthClampControlCreateInfoEXT : return "PipelineViewportDepthClampControlCreateInfoEXT"; + case StructureType::ePhysicalDeviceMaintenance9FeaturesKHR : return "PhysicalDeviceMaintenance9FeaturesKHR"; + case StructureType::ePhysicalDeviceMaintenance9PropertiesKHR : return "PhysicalDeviceMaintenance9PropertiesKHR"; + case StructureType::eQueueFamilyOwnershipTransferPropertiesKHR : return "QueueFamilyOwnershipTransferPropertiesKHR"; case StructureType::ePhysicalDeviceVideoMaintenance2FeaturesKHR : return "PhysicalDeviceVideoMaintenance2FeaturesKHR"; case StructureType::eVideoDecodeH264InlineSessionParametersInfoKHR : return "VideoDecodeH264InlineSessionParametersInfoKHR"; case StructureType::eVideoDecodeH265InlineSessionParametersInfoKHR : return "VideoDecodeH265InlineSessionParametersInfoKHR"; @@ -4278,6 +4375,8 @@ namespace VULKAN_HPP_NAMESPACE case ObjectType::eBufferCollectionFUCHSIA : return "BufferCollectionFUCHSIA"; #endif /*VK_USE_PLATFORM_FUCHSIA*/ case ObjectType::eMicromapEXT : return "MicromapEXT"; + case ObjectType::eTensorARM : return "TensorARM"; + case ObjectType::eTensorViewARM : return "TensorViewARM"; case ObjectType::eOpticalFlowSessionNV : return "OpticalFlowSessionNV"; case ObjectType::eShaderEXT : return "ShaderEXT"; case ObjectType::ePipelineBinaryKHR : return "PipelineBinaryKHR"; @@ -4561,6 +4660,7 @@ namespace VULKAN_HPP_NAMESPACE case Format::ePvrtc14BppSrgbBlockIMG : return "Pvrtc14BppSrgbBlockIMG"; case Format::ePvrtc22BppSrgbBlockIMG : return "Pvrtc22BppSrgbBlockIMG"; case Format::ePvrtc24BppSrgbBlockIMG : return "Pvrtc24BppSrgbBlockIMG"; + case Format::eR8BoolARM : return "R8BoolARM"; case Format::eR16G16Sfixed5NV : return "R16G16Sfixed5NV"; case Format::eR10X6UintPack16ARM : return "R10X6UintPack16ARM"; case Format::eR10X6G10X6Uint2Pack16ARM : return "R10X6G10X6Uint2Pack16ARM"; @@ -4704,6 +4804,7 @@ namespace VULKAN_HPP_NAMESPACE case ImageUsageFlagBits::eInvocationMaskHUAWEI : return "InvocationMaskHUAWEI"; case ImageUsageFlagBits::eSampleWeightQCOM : return "SampleWeightQCOM"; case ImageUsageFlagBits::eSampleBlockMatchQCOM : return "SampleBlockMatchQCOM"; + case ImageUsageFlagBits::eTensorAliasingARM : return "TensorAliasingARM"; case ImageUsageFlagBits::eTileMemoryQCOM : return "TileMemoryQCOM"; case ImageUsageFlagBits::eVideoEncodeQuantizationDeltaMapKHR : return "VideoEncodeQuantizationDeltaMapKHR"; case ImageUsageFlagBits::eVideoEncodeEmphasisMapKHR : return "VideoEncodeEmphasisMapKHR"; @@ -4995,6 +5096,17 @@ namespace VULKAN_HPP_NAMESPACE } + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 std::string to_string( QueryPoolCreateFlagBits value ) + { + switch ( value ) + { + case QueryPoolCreateFlagBits::eResetKHR : return "ResetKHR"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + + } + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 std::string to_string( QueryResultFlagBits value ) { switch ( value ) @@ -5037,12 +5149,6 @@ namespace VULKAN_HPP_NAMESPACE } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 std::string to_string( QueryPoolCreateFlagBits ) - { - return "(void)"; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 std::string to_string( BufferCreateFlagBits value ) { switch ( value ) @@ -5150,6 +5256,7 @@ namespace VULKAN_HPP_NAMESPACE case ImageLayout::eVideoEncodeSrcKHR : return "VideoEncodeSrcKHR"; case ImageLayout::eVideoEncodeDpbKHR : return "VideoEncodeDpbKHR"; case ImageLayout::eAttachmentFeedbackLoopOptimalEXT : return "AttachmentFeedbackLoopOptimalEXT"; + case ImageLayout::eTensorAliasingARM : return "TensorAliasingARM"; case ImageLayout::eVideoEncodeQuantizationMapKHR : return "VideoEncodeQuantizationMapKHR"; case ImageLayout::eZeroInitializedEXT : return "ZeroInitializedEXT"; default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; @@ -5829,6 +5936,7 @@ namespace VULKAN_HPP_NAMESPACE case DescriptorType::eAccelerationStructureNV : return "AccelerationStructureNV"; case DescriptorType::eSampleWeightImageQCOM : return "SampleWeightImageQCOM"; case DescriptorType::eBlockMatchImageQCOM : return "BlockMatchImageQCOM"; + case DescriptorType::eTensorARM : return "TensorARM"; case DescriptorType::eMutableEXT : return "MutableEXT"; case DescriptorType::ePartitionedAccelerationStructureNV : return "PartitionedAccelerationStructureNV"; default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; @@ -5929,6 +6037,7 @@ namespace VULKAN_HPP_NAMESPACE case DependencyFlagBits::eViewLocal : return "ViewLocal"; case DependencyFlagBits::eFeedbackLoopEXT : return "FeedbackLoopEXT"; case DependencyFlagBits::eQueueFamilyOwnershipTransferUseAllStagesKHR : return "QueueFamilyOwnershipTransferUseAllStagesKHR"; + case DependencyFlagBits::eAsymmetricEventKHR : return "AsymmetricEventKHR"; default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } @@ -6706,6 +6815,8 @@ namespace VULKAN_HPP_NAMESPACE case FormatFeatureFlagBits2::eWeightSampledImageQCOM : return "WeightSampledImageQCOM"; case FormatFeatureFlagBits2::eBlockMatchingQCOM : return "BlockMatchingQCOM"; case FormatFeatureFlagBits2::eBoxFilterSampledQCOM : return "BoxFilterSampledQCOM"; + case FormatFeatureFlagBits2::eTensorShaderARM : return "TensorShaderARM"; + case FormatFeatureFlagBits2::eTensorImageAliasingARM : return "TensorImageAliasingARM"; case FormatFeatureFlagBits2::eOpticalFlowImageNV : return "OpticalFlowImageNV"; case FormatFeatureFlagBits2::eOpticalFlowVectorNV : return "OpticalFlowVectorNV"; case FormatFeatureFlagBits2::eOpticalFlowCostNV : return "OpticalFlowCostNV"; @@ -6974,6 +7085,8 @@ namespace VULKAN_HPP_NAMESPACE case SwapchainCreateFlagBitsKHR::eProtected : return "Protected"; case SwapchainCreateFlagBitsKHR::eMutableFormat : return "MutableFormat"; case SwapchainCreateFlagBitsKHR::eDeferredMemoryAllocationEXT : return "DeferredMemoryAllocationEXT"; + case SwapchainCreateFlagBitsKHR::ePresentId2 : return "PresentId2"; + case SwapchainCreateFlagBitsKHR::ePresentWait2 : return "PresentWait2"; default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } @@ -7171,6 +7284,7 @@ namespace VULKAN_HPP_NAMESPACE case VideoCodecOperationFlagBitsKHR::eDecodeH265 : return "DecodeH265"; case VideoCodecOperationFlagBitsKHR::eDecodeAv1 : return "DecodeAv1"; case VideoCodecOperationFlagBitsKHR::eEncodeAv1 : return "EncodeAv1"; + case VideoCodecOperationFlagBitsKHR::eDecodeVp9 : return "DecodeVp9"; default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } @@ -9102,6 +9216,58 @@ namespace VULKAN_HPP_NAMESPACE return "(void)"; } + //=== VK_ARM_tensors === + + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 std::string to_string( TensorCreateFlagBitsARM value ) + { + switch ( value ) + { + case TensorCreateFlagBitsARM::eMutableFormat : return "MutableFormat"; + case TensorCreateFlagBitsARM::eProtected : return "Protected"; + case TensorCreateFlagBitsARM::eDescriptorBufferCaptureReplay : return "DescriptorBufferCaptureReplay"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + + } + + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 std::string to_string( TensorViewCreateFlagBitsARM value ) + { + switch ( value ) + { + case TensorViewCreateFlagBitsARM::eDescriptorBufferCaptureReplay : return "DescriptorBufferCaptureReplay"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + + } + + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 std::string to_string( TensorUsageFlagBitsARM value ) + { + switch ( value ) + { + case TensorUsageFlagBitsARM::eShader : return "Shader"; + case TensorUsageFlagBitsARM::eTransferSrc : return "TransferSrc"; + case TensorUsageFlagBitsARM::eTransferDst : return "TransferDst"; + case TensorUsageFlagBitsARM::eImageAliasing : return "ImageAliasing"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + + } + + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 std::string to_string( TensorTilingARM value ) + { + switch ( value ) + { + case TensorTilingARM::eOptimal : return "Optimal"; + case TensorTilingARM::eLinear : return "Linear"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + + } + //=== VK_NV_optical_flow === @@ -9304,6 +9470,8 @@ namespace VULKAN_HPP_NAMESPACE case ComponentTypeKHR::eUint8PackedNV : return "Uint8PackedNV"; case ComponentTypeKHR::eFloatE4M3NV : return "FloatE4M3NV"; case ComponentTypeKHR::eFloatE5M2NV : return "FloatE5M2NV"; + case ComponentTypeKHR::eFloat8E4M3EXT : return "Float8E4M3EXT"; + case ComponentTypeKHR::eFloat8E5M2EXT : return "Float8E5M2EXT"; default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } @@ -9774,6 +9942,20 @@ namespace VULKAN_HPP_NAMESPACE } + //=== VK_KHR_maintenance9 === + + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 std::string to_string( DefaultVertexAttributeValueKHR value ) + { + switch ( value ) + { + case DefaultVertexAttributeValueKHR::eZeroZeroZeroZero : return "ZeroZeroZeroZero"; + case DefaultVertexAttributeValueKHR::eZeroZeroZeroOne : return "ZeroZeroZeroOne"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + + } + } // namespace VULKAN_HPP_NAMESPACE diff --git a/registry/base_generator.py b/registry/base_generator.py index 86b5250..211885f 100644 --- a/registry/base_generator.py +++ b/registry/base_generator.py @@ -8,7 +8,7 @@ import pickle import os import tempfile from vulkan_object import (VulkanObject, - Extension, Version, Handle, Param, Queues, CommandScope, Command, + Extension, Version, Deprecate, Handle, Param, Queues, CommandScope, Command, EnumField, Enum, Flag, Bitmask, Flags, Member, Struct, FormatComponent, FormatPlane, Format, SyncSupport, SyncEquivalent, SyncStage, SyncAccess, SyncPipelineStage, SyncPipeline, @@ -171,7 +171,6 @@ class BaseGenerator(OutputGenerator): if data is not None and data != "": write(data, file=self.outFile) - def beginFile(self, genOpts): OutputGenerator.beginFile(self, genOpts) self.filename = genOpts.filename @@ -342,11 +341,12 @@ class BaseGenerator(OutputGenerator): for member in command.params: if member.type in self.structAliasMap: member.type = self.dealias(member.type, self.structAliasMap) + # Replace string with Version class now we have all version created + if command.deprecate and command.deprecate.version: + command.deprecate.version = self.vk.versions[command.deprecate.version] # Could build up a reverse lookup map, but since these are not too large of list, just do here # (Need to be done after we have found all the aliases) - - for key, value in self.structAliasMap.items(): self.vk.structs[self.dealias(value, self.structAliasMap)].aliases.append(key) for key, value in self.enumFieldAliasMap.items(): @@ -537,6 +537,12 @@ class BaseGenerator(OutputGenerator): cPrototype = decls[0] cFunctionPointer = decls[1] + deprecate = None + if cmdinfo.deprecatedlink: + deprecate = Deprecate(cmdinfo.deprecatedlink, + cmdinfo.deprecatedbyversion, # is just the string, will update to class later + cmdinfo.deprecatedbyextensions) + protect = self.currentExtension.protect if self.currentExtension is not None else None # These coammds have no way from the XML to detect they would be an instance command @@ -551,7 +557,7 @@ class BaseGenerator(OutputGenerator): returnType, params, instance, device, tasks, queues, successcodes, errorcodes, primary, secondary, renderpass, videocoding, - implicitExternSyncParams, cPrototype, cFunctionPointer) + implicitExternSyncParams, deprecate, cPrototype, cFunctionPointer) # # List the enum for the commands diff --git a/registry/reg.py b/registry/reg.py index 83aeefb..6496aa3 100644 --- a/registry/reg.py +++ b/registry/reg.py @@ -1273,30 +1273,30 @@ class Registry: for typeElem in deprecation.findall('type'): type = self.lookupElementInfo(typeElem.get('name'), self.typedict) if type: - if versionmatch is not None: + if versionmatch is not False: type.deprecatedbyversion = featurename else: - type.deprecatedbyextensions += featurename + type.deprecatedbyextensions.append(featurename) type.deprecatedlink = deprecation.get('explanationlink') else: self.gen.logMsg('error', typeElem.get('name'), ' is tagged for deprecation but not present in registry') for enumElem in deprecation.findall('enum'): enum = self.lookupElementInfo(enumElem.get('name'), self.enumdict) if enum: - if versionmatch is not None: + if versionmatch is not False: enum.deprecatedbyversion = featurename else: - enum.deprecatedbyextensions += featurename + enum.deprecatedbyextensions.append(featurename) enum.deprecatedlink = deprecation.get('explanationlink') else: self.gen.logMsg('error', enumElem.get('name'), ' is tagged for deprecation but not present in registry') for cmdElem in deprecation.findall('command'): cmd = self.lookupElementInfo(cmdElem.get('name'), self.cmddict) if cmd: - if versionmatch is not None: + if versionmatch is not False: cmd.deprecatedbyversion = featurename else: - cmd.deprecatedbyextensions += featurename + cmd.deprecatedbyextensions.append(featurename) cmd.deprecatedlink = deprecation.get('explanationlink') else: self.gen.logMsg('error', cmdElem.get('name'), ' is tagged for deprecation but not present in registry') diff --git a/registry/validusage.json b/registry/validusage.json index 24e0627..dbd6c12 100644 --- a/registry/validusage.json +++ b/registry/validusage.json @@ -1,9 +1,9 @@ { "version info": { "schema version": 2, - "api version": "1.4.316", - "comment": "from git branch: github-main commit: dd1a021e15026b17c6f844cb42a59036b9f9a9b8", - "date": "2025-05-30 15:00:46Z" + "api version": "1.4.317", + "comment": "from git branch: github-main commit: 1228b2beff1a664da6dabea122f49f9818ecda8a", + "date": "2025-06-06 12:35:50Z" }, "validation": { "vkGetInstanceProcAddr": { @@ -379,7 +379,7 @@ }, { "vuid": "VUID-VkPhysicalDeviceProperties2-pNext-pNext", - "text": "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 VkPhysicalDeviceAccelerationStructurePropertiesKHR, VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, VkPhysicalDeviceClusterAccelerationStructurePropertiesNV, VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI, VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR, VkPhysicalDeviceConservativeRasterizationPropertiesEXT, VkPhysicalDeviceCooperativeMatrix2PropertiesNV, VkPhysicalDeviceCooperativeMatrixPropertiesKHR, VkPhysicalDeviceCooperativeMatrixPropertiesNV, VkPhysicalDeviceCooperativeVectorPropertiesNV, VkPhysicalDeviceCopyMemoryIndirectPropertiesNV, VkPhysicalDeviceCudaKernelLaunchPropertiesNV, VkPhysicalDeviceCustomBorderColorPropertiesEXT, VkPhysicalDeviceDepthStencilResolveProperties, VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT, VkPhysicalDeviceDescriptorBufferPropertiesEXT, VkPhysicalDeviceDescriptorIndexingProperties, VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT, VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, VkPhysicalDeviceDiscardRectanglePropertiesEXT, VkPhysicalDeviceDisplacementMicromapPropertiesNV, VkPhysicalDeviceDriverProperties, VkPhysicalDeviceDrmPropertiesEXT, VkPhysicalDeviceExtendedDynamicState3PropertiesEXT, VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV, VkPhysicalDeviceExternalComputeQueuePropertiesNV, VkPhysicalDeviceExternalFormatResolvePropertiesANDROID, VkPhysicalDeviceExternalMemoryHostPropertiesEXT, VkPhysicalDeviceFloatControlsProperties, VkPhysicalDeviceFragmentDensityMap2PropertiesEXT, VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT, VkPhysicalDeviceFragmentDensityMapPropertiesEXT, VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR, VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV, VkPhysicalDeviceFragmentShadingRatePropertiesKHR, VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT, VkPhysicalDeviceHostImageCopyProperties, VkPhysicalDeviceIDProperties, VkPhysicalDeviceImageAlignmentControlPropertiesMESA, VkPhysicalDeviceImageProcessing2PropertiesQCOM, VkPhysicalDeviceImageProcessingPropertiesQCOM, VkPhysicalDeviceInlineUniformBlockProperties, VkPhysicalDeviceLayeredApiPropertiesListKHR, VkPhysicalDeviceLayeredDriverPropertiesMSFT, VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT, VkPhysicalDeviceLineRasterizationProperties, VkPhysicalDeviceMaintenance3Properties, VkPhysicalDeviceMaintenance4Properties, VkPhysicalDeviceMaintenance5Properties, VkPhysicalDeviceMaintenance6Properties, VkPhysicalDeviceMaintenance7PropertiesKHR, VkPhysicalDeviceMapMemoryPlacedPropertiesEXT, VkPhysicalDeviceMemoryDecompressionPropertiesNV, VkPhysicalDeviceMeshShaderPropertiesEXT, VkPhysicalDeviceMeshShaderPropertiesNV, VkPhysicalDeviceMultiDrawPropertiesEXT, VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, VkPhysicalDeviceMultiviewProperties, VkPhysicalDeviceNestedCommandBufferPropertiesEXT, VkPhysicalDeviceOpacityMicromapPropertiesEXT, VkPhysicalDeviceOpticalFlowPropertiesNV, VkPhysicalDevicePCIBusInfoPropertiesEXT, VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV, VkPhysicalDevicePerformanceQueryPropertiesKHR, VkPhysicalDevicePipelineBinaryPropertiesKHR, VkPhysicalDevicePipelineRobustnessProperties, VkPhysicalDevicePointClippingProperties, VkPhysicalDevicePortabilitySubsetPropertiesKHR, VkPhysicalDeviceProtectedMemoryProperties, VkPhysicalDeviceProvokingVertexPropertiesEXT, VkPhysicalDevicePushDescriptorProperties, VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV, VkPhysicalDeviceRayTracingPipelinePropertiesKHR, VkPhysicalDeviceRayTracingPropertiesNV, VkPhysicalDeviceRenderPassStripedPropertiesARM, VkPhysicalDeviceRobustness2PropertiesKHR, VkPhysicalDeviceSampleLocationsPropertiesEXT, VkPhysicalDeviceSamplerFilterMinmaxProperties, VkPhysicalDeviceSchedulingControlsPropertiesARM, VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM, VkPhysicalDeviceShaderCoreProperties2AMD, VkPhysicalDeviceShaderCorePropertiesAMD, VkPhysicalDeviceShaderCorePropertiesARM, VkPhysicalDeviceShaderEnqueuePropertiesAMDX, VkPhysicalDeviceShaderIntegerDotProductProperties, VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT, VkPhysicalDeviceShaderObjectPropertiesEXT, VkPhysicalDeviceShaderSMBuiltinsPropertiesNV, VkPhysicalDeviceShaderTileImagePropertiesEXT, VkPhysicalDeviceShadingRateImagePropertiesNV, VkPhysicalDeviceSubgroupProperties, VkPhysicalDeviceSubgroupSizeControlProperties, VkPhysicalDeviceSubpassShadingPropertiesHUAWEI, VkPhysicalDeviceTexelBufferAlignmentProperties, VkPhysicalDeviceTileMemoryHeapPropertiesQCOM, VkPhysicalDeviceTileShadingPropertiesQCOM, VkPhysicalDeviceTimelineSemaphoreProperties, VkPhysicalDeviceTransformFeedbackPropertiesEXT, VkPhysicalDeviceVertexAttributeDivisorProperties, VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, VkPhysicalDeviceVulkan11Properties, VkPhysicalDeviceVulkan12Properties, VkPhysicalDeviceVulkan13Properties, or VkPhysicalDeviceVulkan14Properties", + "text": "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 VkPhysicalDeviceAccelerationStructurePropertiesKHR, VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, VkPhysicalDeviceClusterAccelerationStructurePropertiesNV, VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI, VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR, VkPhysicalDeviceConservativeRasterizationPropertiesEXT, VkPhysicalDeviceCooperativeMatrix2PropertiesNV, VkPhysicalDeviceCooperativeMatrixPropertiesKHR, VkPhysicalDeviceCooperativeMatrixPropertiesNV, VkPhysicalDeviceCooperativeVectorPropertiesNV, VkPhysicalDeviceCopyMemoryIndirectPropertiesNV, VkPhysicalDeviceCudaKernelLaunchPropertiesNV, VkPhysicalDeviceCustomBorderColorPropertiesEXT, VkPhysicalDeviceDepthStencilResolveProperties, VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT, VkPhysicalDeviceDescriptorBufferPropertiesEXT, VkPhysicalDeviceDescriptorBufferTensorPropertiesARM, VkPhysicalDeviceDescriptorIndexingProperties, VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT, VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, VkPhysicalDeviceDiscardRectanglePropertiesEXT, VkPhysicalDeviceDisplacementMicromapPropertiesNV, VkPhysicalDeviceDriverProperties, VkPhysicalDeviceDrmPropertiesEXT, VkPhysicalDeviceExtendedDynamicState3PropertiesEXT, VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV, VkPhysicalDeviceExternalComputeQueuePropertiesNV, VkPhysicalDeviceExternalFormatResolvePropertiesANDROID, VkPhysicalDeviceExternalMemoryHostPropertiesEXT, VkPhysicalDeviceFloatControlsProperties, VkPhysicalDeviceFragmentDensityMap2PropertiesEXT, VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT, VkPhysicalDeviceFragmentDensityMapPropertiesEXT, VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR, VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV, VkPhysicalDeviceFragmentShadingRatePropertiesKHR, VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT, VkPhysicalDeviceHostImageCopyProperties, VkPhysicalDeviceIDProperties, VkPhysicalDeviceImageAlignmentControlPropertiesMESA, VkPhysicalDeviceImageProcessing2PropertiesQCOM, VkPhysicalDeviceImageProcessingPropertiesQCOM, VkPhysicalDeviceInlineUniformBlockProperties, VkPhysicalDeviceLayeredApiPropertiesListKHR, VkPhysicalDeviceLayeredDriverPropertiesMSFT, VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT, VkPhysicalDeviceLineRasterizationProperties, VkPhysicalDeviceMaintenance3Properties, VkPhysicalDeviceMaintenance4Properties, VkPhysicalDeviceMaintenance5Properties, VkPhysicalDeviceMaintenance6Properties, VkPhysicalDeviceMaintenance7PropertiesKHR, VkPhysicalDeviceMaintenance9PropertiesKHR, VkPhysicalDeviceMapMemoryPlacedPropertiesEXT, VkPhysicalDeviceMemoryDecompressionPropertiesNV, VkPhysicalDeviceMeshShaderPropertiesEXT, VkPhysicalDeviceMeshShaderPropertiesNV, VkPhysicalDeviceMultiDrawPropertiesEXT, VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, VkPhysicalDeviceMultiviewProperties, VkPhysicalDeviceNestedCommandBufferPropertiesEXT, VkPhysicalDeviceOpacityMicromapPropertiesEXT, VkPhysicalDeviceOpticalFlowPropertiesNV, VkPhysicalDevicePCIBusInfoPropertiesEXT, VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV, VkPhysicalDevicePerformanceQueryPropertiesKHR, VkPhysicalDevicePipelineBinaryPropertiesKHR, VkPhysicalDevicePipelineRobustnessProperties, VkPhysicalDevicePointClippingProperties, VkPhysicalDevicePortabilitySubsetPropertiesKHR, VkPhysicalDeviceProtectedMemoryProperties, VkPhysicalDeviceProvokingVertexPropertiesEXT, VkPhysicalDevicePushDescriptorProperties, VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV, VkPhysicalDeviceRayTracingPipelinePropertiesKHR, VkPhysicalDeviceRayTracingPropertiesNV, VkPhysicalDeviceRenderPassStripedPropertiesARM, VkPhysicalDeviceRobustness2PropertiesKHR, VkPhysicalDeviceSampleLocationsPropertiesEXT, VkPhysicalDeviceSamplerFilterMinmaxProperties, VkPhysicalDeviceSchedulingControlsPropertiesARM, VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM, VkPhysicalDeviceShaderCoreProperties2AMD, VkPhysicalDeviceShaderCorePropertiesAMD, VkPhysicalDeviceShaderCorePropertiesARM, VkPhysicalDeviceShaderEnqueuePropertiesAMDX, VkPhysicalDeviceShaderIntegerDotProductProperties, VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT, VkPhysicalDeviceShaderObjectPropertiesEXT, VkPhysicalDeviceShaderSMBuiltinsPropertiesNV, VkPhysicalDeviceShaderTileImagePropertiesEXT, VkPhysicalDeviceShadingRateImagePropertiesNV, VkPhysicalDeviceSubgroupProperties, VkPhysicalDeviceSubgroupSizeControlProperties, VkPhysicalDeviceSubpassShadingPropertiesHUAWEI, VkPhysicalDeviceTensorPropertiesARM, VkPhysicalDeviceTexelBufferAlignmentProperties, VkPhysicalDeviceTileMemoryHeapPropertiesQCOM, VkPhysicalDeviceTileShadingPropertiesQCOM, VkPhysicalDeviceTimelineSemaphoreProperties, VkPhysicalDeviceTransformFeedbackPropertiesEXT, VkPhysicalDeviceVertexAttributeDivisorProperties, VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, VkPhysicalDeviceVulkan11Properties, VkPhysicalDeviceVulkan12Properties, VkPhysicalDeviceVulkan13Properties, or VkPhysicalDeviceVulkan14Properties", "page": "chapters/devsandqueues.html" }, { @@ -562,7 +562,7 @@ }, { "vuid": "VUID-VkQueueFamilyProperties2-pNext-pNext", - "text": "Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkQueueFamilyCheckpointProperties2NV, VkQueueFamilyCheckpointPropertiesNV, VkQueueFamilyGlobalPriorityProperties, VkQueueFamilyQueryResultStatusPropertiesKHR, or VkQueueFamilyVideoPropertiesKHR", + "text": "Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkQueueFamilyCheckpointProperties2NV, VkQueueFamilyCheckpointPropertiesNV, VkQueueFamilyGlobalPriorityProperties, VkQueueFamilyOwnershipTransferPropertiesKHR, VkQueueFamilyQueryResultStatusPropertiesKHR, or VkQueueFamilyVideoPropertiesKHR", "page": "chapters/devsandqueues.html" }, { @@ -669,6 +669,15 @@ } ] }, + "VkQueueFamilyOwnershipTransferPropertiesKHR": { + "core": [ + { + "vuid": "VUID-VkQueueFamilyOwnershipTransferPropertiesKHR-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_OWNERSHIP_TRANSFER_PROPERTIES_KHR", + "page": "chapters/devsandqueues.html" + } + ] + }, "vkEnumeratePhysicalDeviceGroups": { "core": [ { @@ -706,7 +715,7 @@ "core": [ { "vuid": "VUID-vkCreateDevice-ppEnabledExtensionNames-01387", - "text": "All required device extensions for each extension in the VkDeviceCreateInfo::ppEnabledExtensionNames list must also be present in that list", + "text": "All required device extensions for each extension in the VkDeviceCreateInfo::ppEnabledExtensionNames list must also be present in that list.", "page": "chapters/devsandqueues.html" }, { @@ -820,7 +829,7 @@ }, { "vuid": "VUID-VkDeviceCreateInfo-pNext-10360", - "text": "If the pNext chain includes a VkPhysicalDeviceVulkan14Features structure, then it must not include a VkPhysicalDeviceGlobalPriorityQueryFeatures VkPhysicalDeviceShaderSubgroupRotateFeatures VkPhysicalDeviceShaderFloatControls2Features VkPhysicalDeviceShaderExpectAssumeFeatures VkPhysicalDeviceLineRasterizationFeatures VkPhysicalDeviceVertexAttributeDivisorFeatures VkPhysicalDeviceIndexTypeUint8Features VkPhysicalDeviceDynamicRenderingLocalReadFeatures VkPhysicalDeviceMaintenance5Features VkPhysicalDeviceMaintenance6Features VkPhysicalDevicePipelineProtectedAccessFeatures VkPhysicalDevicePipelineRobustnessFeatures, or VkPhysicalDeviceHostImageCopyFeatures structure", + "text": "If the pNext chain includes a VkPhysicalDeviceVulkan14Features structure, then it must not include a VkPhysicalDeviceGlobalPriorityQueryFeatures, VkPhysicalDeviceShaderSubgroupRotateFeatures, VkPhysicalDeviceShaderFloatControls2Features, VkPhysicalDeviceShaderExpectAssumeFeatures, VkPhysicalDeviceLineRasterizationFeatures, VkPhysicalDeviceVertexAttributeDivisorFeatures, VkPhysicalDeviceIndexTypeUint8Features, VkPhysicalDeviceDynamicRenderingLocalReadFeatures, VkPhysicalDeviceMaintenance5Features, VkPhysicalDeviceMaintenance6Features, VkPhysicalDevicePipelineProtectedAccessFeatures, VkPhysicalDevicePipelineRobustnessFeatures, or VkPhysicalDeviceHostImageCopyFeatures structure", "page": "chapters/devsandqueues.html" }, { @@ -898,6 +907,11 @@ "text": "If the pNext chain includes a VkDeviceQueueShaderCoreControlCreateInfoARM structure then VkPhysicalDeviceSchedulingControlsPropertiesARM::schedulingControlsFlags must contain VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM", "page": "chapters/devsandqueues.html" }, + { + "vuid": "VUID-VkDeviceCreateInfo-None-10778", + "text": "If the maintenance9 feature is not supported, queueCreateInfoCount must be greater than 0", + "page": "chapters/devsandqueues.html" + }, { "vuid": "VUID-VkDeviceCreateInfo-sType-sType", "text": "sType must be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO", @@ -905,7 +919,7 @@ }, { "vuid": "VUID-VkDeviceCreateInfo-pNext-pNext", - "text": "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 VkDeviceDeviceMemoryReportCreateInfoEXT, VkDeviceDiagnosticsConfigCreateInfoNV, VkDeviceGroupDeviceCreateInfo, VkDeviceMemoryOverallocationCreateInfoAMD, VkDevicePipelineBinaryInternalCacheControlKHR, VkDevicePrivateDataCreateInfo, VkDeviceQueueShaderCoreControlCreateInfoARM, VkExternalComputeQueueDeviceCreateInfoNV, VkPhysicalDevice16BitStorageFeatures, VkPhysicalDevice4444FormatsFeaturesEXT, VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceASTCDecodeFeaturesEXT, VkPhysicalDeviceAccelerationStructureFeaturesKHR, VkPhysicalDeviceAddressBindingReportFeaturesEXT, VkPhysicalDeviceAmigoProfilingFeaturesSEC, VkPhysicalDeviceAntiLagFeaturesAMD, VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT, VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, VkPhysicalDeviceBufferDeviceAddressFeatures, VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, VkPhysicalDeviceClusterAccelerationStructureFeaturesNV, VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI, VkPhysicalDeviceCoherentMemoryFeaturesAMD, VkPhysicalDeviceColorWriteEnableFeaturesEXT, VkPhysicalDeviceCommandBufferInheritanceFeaturesNV, VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR, VkPhysicalDeviceConditionalRenderingFeaturesEXT, VkPhysicalDeviceCooperativeMatrix2FeaturesNV, VkPhysicalDeviceCooperativeMatrixFeaturesKHR, VkPhysicalDeviceCooperativeMatrixFeaturesNV, VkPhysicalDeviceCooperativeVectorFeaturesNV, VkPhysicalDeviceCopyMemoryIndirectFeaturesNV, VkPhysicalDeviceCornerSampledImageFeaturesNV, VkPhysicalDeviceCoverageReductionModeFeaturesNV, VkPhysicalDeviceCubicClampFeaturesQCOM, VkPhysicalDeviceCubicWeightsFeaturesQCOM, VkPhysicalDeviceCudaKernelLaunchFeaturesNV, VkPhysicalDeviceCustomBorderColorFeaturesEXT, VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, VkPhysicalDeviceDepthBiasControlFeaturesEXT, VkPhysicalDeviceDepthClampControlFeaturesEXT, VkPhysicalDeviceDepthClampZeroOneFeaturesKHR, VkPhysicalDeviceDepthClipControlFeaturesEXT, VkPhysicalDeviceDepthClipEnableFeaturesEXT, VkPhysicalDeviceDescriptorBufferFeaturesEXT, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV, VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV, VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT, VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, VkPhysicalDeviceDiagnosticsConfigFeaturesNV, VkPhysicalDeviceDisplacementMicromapFeaturesNV, VkPhysicalDeviceDynamicRenderingFeatures, VkPhysicalDeviceDynamicRenderingLocalReadFeatures, VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT, VkPhysicalDeviceExclusiveScissorFeaturesNV, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, VkPhysicalDeviceExtendedDynamicState3FeaturesEXT, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV, VkPhysicalDeviceExternalFormatResolveFeaturesANDROID, VkPhysicalDeviceExternalMemoryRDMAFeaturesNV, VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX, VkPhysicalDeviceFaultFeaturesEXT, VkPhysicalDeviceFeatures2, VkPhysicalDeviceFormatPackFeaturesARM, VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, VkPhysicalDeviceFragmentDensityMapFeaturesEXT, VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT, VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, VkPhysicalDeviceFragmentShadingRateFeaturesKHR, VkPhysicalDeviceFrameBoundaryFeaturesEXT, VkPhysicalDeviceGlobalPriorityQueryFeatures, VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, VkPhysicalDeviceHdrVividFeaturesHUAWEI, VkPhysicalDeviceHostImageCopyFeatures, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, VkPhysicalDeviceImageAlignmentControlFeaturesMESA, VkPhysicalDeviceImageCompressionControlFeaturesEXT, VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, VkPhysicalDeviceImageProcessing2FeaturesQCOM, VkPhysicalDeviceImageProcessingFeaturesQCOM, VkPhysicalDeviceImageRobustnessFeatures, VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT, VkPhysicalDeviceImageViewMinLodFeaturesEXT, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceIndexTypeUint8Features, VkPhysicalDeviceInheritedViewportScissorFeaturesNV, VkPhysicalDeviceInlineUniformBlockFeatures, VkPhysicalDeviceInvocationMaskFeaturesHUAWEI, VkPhysicalDeviceLegacyDitheringFeaturesEXT, VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT, VkPhysicalDeviceLineRasterizationFeatures, VkPhysicalDeviceLinearColorAttachmentFeaturesNV, VkPhysicalDeviceMaintenance4Features, VkPhysicalDeviceMaintenance5Features, VkPhysicalDeviceMaintenance6Features, VkPhysicalDeviceMaintenance7FeaturesKHR, VkPhysicalDeviceMaintenance8FeaturesKHR, VkPhysicalDeviceMapMemoryPlacedFeaturesEXT, VkPhysicalDeviceMemoryDecompressionFeaturesNV, VkPhysicalDeviceMemoryPriorityFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesNV, VkPhysicalDeviceMultiDrawFeaturesEXT, VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM, VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT, VkPhysicalDeviceNestedCommandBufferFeaturesEXT, VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT, VkPhysicalDeviceOpacityMicromapFeaturesEXT, VkPhysicalDeviceOpticalFlowFeaturesNV, VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV, VkPhysicalDevicePerStageDescriptorSetFeaturesNV, VkPhysicalDevicePerformanceQueryFeaturesKHR, VkPhysicalDevicePipelineBinaryFeaturesKHR, VkPhysicalDevicePipelineCreationCacheControlFeatures, VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT, VkPhysicalDevicePipelineOpacityMicromapFeaturesARM, VkPhysicalDevicePipelinePropertiesFeaturesEXT, VkPhysicalDevicePipelineProtectedAccessFeatures, VkPhysicalDevicePipelineRobustnessFeatures, VkPhysicalDevicePortabilitySubsetFeaturesKHR, VkPhysicalDevicePresentBarrierFeaturesNV, VkPhysicalDevicePresentIdFeaturesKHR, VkPhysicalDevicePresentMeteringFeaturesNV, VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT, VkPhysicalDevicePresentWaitFeaturesKHR, VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, VkPhysicalDevicePrivateDataFeatures, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceProvokingVertexFeaturesEXT, VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT, VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT, VkPhysicalDeviceRawAccessChainsFeaturesNV, VkPhysicalDeviceRayQueryFeaturesKHR, VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV, VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV, VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR, VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, VkPhysicalDeviceRayTracingPipelineFeaturesKHR, VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR, VkPhysicalDeviceRayTracingValidationFeaturesNV, VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG, VkPhysicalDeviceRenderPassStripedFeaturesARM, VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, VkPhysicalDeviceRobustness2FeaturesKHR, VkPhysicalDeviceSamplerYcbcrConversionFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceSchedulingControlsFeaturesARM, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV, VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderBfloat16FeaturesKHR, VkPhysicalDeviceShaderClockFeaturesKHR, VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, VkPhysicalDeviceShaderDrawParametersFeatures, VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, VkPhysicalDeviceShaderEnqueueFeaturesAMDX, VkPhysicalDeviceShaderExpectAssumeFeatures, VkPhysicalDeviceShaderFloat16Int8Features, VkPhysicalDeviceShaderFloatControls2Features, VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, VkPhysicalDeviceShaderImageFootprintFeaturesNV, VkPhysicalDeviceShaderIntegerDotProductFeatures, VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR, VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT, VkPhysicalDeviceShaderObjectFeaturesEXT, VkPhysicalDeviceShaderQuadControlFeaturesKHR, VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR, VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT, VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, VkPhysicalDeviceShaderSubgroupRotateFeatures, VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, VkPhysicalDeviceShaderTerminateInvocationFeatures, VkPhysicalDeviceShaderTileImageFeaturesEXT, VkPhysicalDeviceShadingRateImageFeaturesNV, VkPhysicalDeviceSubgroupSizeControlFeatures, VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT, VkPhysicalDeviceSubpassShadingFeaturesHUAWEI, VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT, VkPhysicalDeviceSynchronization2Features, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, VkPhysicalDeviceTextureCompressionASTCHDRFeatures, VkPhysicalDeviceTileMemoryHeapFeaturesQCOM, VkPhysicalDeviceTilePropertiesFeaturesQCOM, VkPhysicalDeviceTileShadingFeaturesQCOM, VkPhysicalDeviceTimelineSemaphoreFeatures, VkPhysicalDeviceTransformFeedbackFeaturesEXT, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceVariablePointersFeatures, VkPhysicalDeviceVertexAttributeDivisorFeatures, VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT, VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT, VkPhysicalDeviceVideoEncodeAV1FeaturesKHR, VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR, VkPhysicalDeviceVideoMaintenance1FeaturesKHR, VkPhysicalDeviceVideoMaintenance2FeaturesKHR, VkPhysicalDeviceVulkan11Features, VkPhysicalDeviceVulkan12Features, VkPhysicalDeviceVulkan13Features, VkPhysicalDeviceVulkan14Features, VkPhysicalDeviceVulkanMemoryModelFeatures, VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, VkPhysicalDeviceYcbcrDegammaFeaturesQCOM, VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT, or VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures", + "text": "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 VkDeviceDeviceMemoryReportCreateInfoEXT, VkDeviceDiagnosticsConfigCreateInfoNV, VkDeviceGroupDeviceCreateInfo, VkDeviceMemoryOverallocationCreateInfoAMD, VkDevicePipelineBinaryInternalCacheControlKHR, VkDevicePrivateDataCreateInfo, VkDeviceQueueShaderCoreControlCreateInfoARM, VkExternalComputeQueueDeviceCreateInfoNV, VkPhysicalDevice16BitStorageFeatures, VkPhysicalDevice4444FormatsFeaturesEXT, VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceASTCDecodeFeaturesEXT, VkPhysicalDeviceAccelerationStructureFeaturesKHR, VkPhysicalDeviceAddressBindingReportFeaturesEXT, VkPhysicalDeviceAmigoProfilingFeaturesSEC, VkPhysicalDeviceAntiLagFeaturesAMD, VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT, VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, VkPhysicalDeviceBufferDeviceAddressFeatures, VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, VkPhysicalDeviceClusterAccelerationStructureFeaturesNV, VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI, VkPhysicalDeviceCoherentMemoryFeaturesAMD, VkPhysicalDeviceColorWriteEnableFeaturesEXT, VkPhysicalDeviceCommandBufferInheritanceFeaturesNV, VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR, VkPhysicalDeviceConditionalRenderingFeaturesEXT, VkPhysicalDeviceCooperativeMatrix2FeaturesNV, VkPhysicalDeviceCooperativeMatrixFeaturesKHR, VkPhysicalDeviceCooperativeMatrixFeaturesNV, VkPhysicalDeviceCooperativeVectorFeaturesNV, VkPhysicalDeviceCopyMemoryIndirectFeaturesNV, VkPhysicalDeviceCornerSampledImageFeaturesNV, VkPhysicalDeviceCoverageReductionModeFeaturesNV, VkPhysicalDeviceCubicClampFeaturesQCOM, VkPhysicalDeviceCubicWeightsFeaturesQCOM, VkPhysicalDeviceCudaKernelLaunchFeaturesNV, VkPhysicalDeviceCustomBorderColorFeaturesEXT, VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, VkPhysicalDeviceDepthBiasControlFeaturesEXT, VkPhysicalDeviceDepthClampControlFeaturesEXT, VkPhysicalDeviceDepthClampZeroOneFeaturesKHR, VkPhysicalDeviceDepthClipControlFeaturesEXT, VkPhysicalDeviceDepthClipEnableFeaturesEXT, VkPhysicalDeviceDescriptorBufferFeaturesEXT, VkPhysicalDeviceDescriptorBufferTensorFeaturesARM, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV, VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV, VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT, VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, VkPhysicalDeviceDiagnosticsConfigFeaturesNV, VkPhysicalDeviceDisplacementMicromapFeaturesNV, VkPhysicalDeviceDynamicRenderingFeatures, VkPhysicalDeviceDynamicRenderingLocalReadFeatures, VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT, VkPhysicalDeviceExclusiveScissorFeaturesNV, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, VkPhysicalDeviceExtendedDynamicState3FeaturesEXT, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV, VkPhysicalDeviceExternalFormatResolveFeaturesANDROID, VkPhysicalDeviceExternalMemoryRDMAFeaturesNV, VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX, VkPhysicalDeviceFaultFeaturesEXT, VkPhysicalDeviceFeatures2, VkPhysicalDeviceFormatPackFeaturesARM, VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, VkPhysicalDeviceFragmentDensityMapFeaturesEXT, VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT, VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, VkPhysicalDeviceFragmentShadingRateFeaturesKHR, VkPhysicalDeviceFrameBoundaryFeaturesEXT, VkPhysicalDeviceGlobalPriorityQueryFeatures, VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, VkPhysicalDeviceHdrVividFeaturesHUAWEI, VkPhysicalDeviceHostImageCopyFeatures, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, VkPhysicalDeviceImageAlignmentControlFeaturesMESA, VkPhysicalDeviceImageCompressionControlFeaturesEXT, VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, VkPhysicalDeviceImageProcessing2FeaturesQCOM, VkPhysicalDeviceImageProcessingFeaturesQCOM, VkPhysicalDeviceImageRobustnessFeatures, VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT, VkPhysicalDeviceImageViewMinLodFeaturesEXT, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceIndexTypeUint8Features, VkPhysicalDeviceInheritedViewportScissorFeaturesNV, VkPhysicalDeviceInlineUniformBlockFeatures, VkPhysicalDeviceInvocationMaskFeaturesHUAWEI, VkPhysicalDeviceLegacyDitheringFeaturesEXT, VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT, VkPhysicalDeviceLineRasterizationFeatures, VkPhysicalDeviceLinearColorAttachmentFeaturesNV, VkPhysicalDeviceMaintenance4Features, VkPhysicalDeviceMaintenance5Features, VkPhysicalDeviceMaintenance6Features, VkPhysicalDeviceMaintenance7FeaturesKHR, VkPhysicalDeviceMaintenance8FeaturesKHR, VkPhysicalDeviceMaintenance9FeaturesKHR, VkPhysicalDeviceMapMemoryPlacedFeaturesEXT, VkPhysicalDeviceMemoryDecompressionFeaturesNV, VkPhysicalDeviceMemoryPriorityFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesNV, VkPhysicalDeviceMultiDrawFeaturesEXT, VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM, VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT, VkPhysicalDeviceNestedCommandBufferFeaturesEXT, VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT, VkPhysicalDeviceOpacityMicromapFeaturesEXT, VkPhysicalDeviceOpticalFlowFeaturesNV, VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV, VkPhysicalDevicePerStageDescriptorSetFeaturesNV, VkPhysicalDevicePerformanceQueryFeaturesKHR, VkPhysicalDevicePipelineBinaryFeaturesKHR, VkPhysicalDevicePipelineCreationCacheControlFeatures, VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT, VkPhysicalDevicePipelineOpacityMicromapFeaturesARM, VkPhysicalDevicePipelinePropertiesFeaturesEXT, VkPhysicalDevicePipelineProtectedAccessFeatures, VkPhysicalDevicePipelineRobustnessFeatures, VkPhysicalDevicePortabilitySubsetFeaturesKHR, VkPhysicalDevicePresentBarrierFeaturesNV, VkPhysicalDevicePresentId2FeaturesKHR, VkPhysicalDevicePresentIdFeaturesKHR, VkPhysicalDevicePresentMeteringFeaturesNV, VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT, VkPhysicalDevicePresentWait2FeaturesKHR, VkPhysicalDevicePresentWaitFeaturesKHR, VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, VkPhysicalDevicePrivateDataFeatures, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceProvokingVertexFeaturesEXT, VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT, VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT, VkPhysicalDeviceRawAccessChainsFeaturesNV, VkPhysicalDeviceRayQueryFeaturesKHR, VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV, VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV, VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR, VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, VkPhysicalDeviceRayTracingPipelineFeaturesKHR, VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR, VkPhysicalDeviceRayTracingValidationFeaturesNV, VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG, VkPhysicalDeviceRenderPassStripedFeaturesARM, VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, VkPhysicalDeviceRobustness2FeaturesKHR, VkPhysicalDeviceSamplerYcbcrConversionFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceSchedulingControlsFeaturesARM, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV, VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderBfloat16FeaturesKHR, VkPhysicalDeviceShaderClockFeaturesKHR, VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, VkPhysicalDeviceShaderDrawParametersFeatures, VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, VkPhysicalDeviceShaderEnqueueFeaturesAMDX, VkPhysicalDeviceShaderExpectAssumeFeatures, VkPhysicalDeviceShaderFloat16Int8Features, VkPhysicalDeviceShaderFloat8FeaturesEXT, VkPhysicalDeviceShaderFloatControls2Features, VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, VkPhysicalDeviceShaderImageFootprintFeaturesNV, VkPhysicalDeviceShaderIntegerDotProductFeatures, VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR, VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT, VkPhysicalDeviceShaderObjectFeaturesEXT, VkPhysicalDeviceShaderQuadControlFeaturesKHR, VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR, VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT, VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, VkPhysicalDeviceShaderSubgroupRotateFeatures, VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, VkPhysicalDeviceShaderTerminateInvocationFeatures, VkPhysicalDeviceShaderTileImageFeaturesEXT, VkPhysicalDeviceShadingRateImageFeaturesNV, VkPhysicalDeviceSubgroupSizeControlFeatures, VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT, VkPhysicalDeviceSubpassShadingFeaturesHUAWEI, VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT, VkPhysicalDeviceSynchronization2Features, VkPhysicalDeviceTensorFeaturesARM, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, VkPhysicalDeviceTextureCompressionASTCHDRFeatures, VkPhysicalDeviceTileMemoryHeapFeaturesQCOM, VkPhysicalDeviceTilePropertiesFeaturesQCOM, VkPhysicalDeviceTileShadingFeaturesQCOM, VkPhysicalDeviceTimelineSemaphoreFeatures, VkPhysicalDeviceTransformFeedbackFeaturesEXT, VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceVariablePointersFeatures, VkPhysicalDeviceVertexAttributeDivisorFeatures, VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT, VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT, VkPhysicalDeviceVideoDecodeVP9FeaturesKHR, VkPhysicalDeviceVideoEncodeAV1FeaturesKHR, VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR, VkPhysicalDeviceVideoMaintenance1FeaturesKHR, VkPhysicalDeviceVideoMaintenance2FeaturesKHR, VkPhysicalDeviceVulkan11Features, VkPhysicalDeviceVulkan12Features, VkPhysicalDeviceVulkan13Features, VkPhysicalDeviceVulkan14Features, VkPhysicalDeviceVulkanMemoryModelFeatures, VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, VkPhysicalDeviceYcbcrDegammaFeaturesQCOM, VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT, or VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures", "page": "chapters/devsandqueues.html" }, { @@ -920,7 +934,7 @@ }, { "vuid": "VUID-VkDeviceCreateInfo-pQueueCreateInfos-parameter", - "text": "pQueueCreateInfos must be a valid pointer to an array of queueCreateInfoCount valid VkDeviceQueueCreateInfo structures", + "text": "If queueCreateInfoCount is not 0, pQueueCreateInfos must be a valid pointer to an array of queueCreateInfoCount valid VkDeviceQueueCreateInfo structures", "page": "chapters/devsandqueues.html" }, { @@ -937,11 +951,6 @@ "vuid": "VUID-VkDeviceCreateInfo-pEnabledFeatures-parameter", "text": "If pEnabledFeatures is not NULL, pEnabledFeatures must be a valid pointer to a valid VkPhysicalDeviceFeatures structure", "page": "chapters/devsandqueues.html" - }, - { - "vuid": "VUID-VkDeviceCreateInfo-queueCreateInfoCount-arraylength", - "text": "queueCreateInfoCount must be greater than 0", - "page": "chapters/devsandqueues.html" } ] }, @@ -1292,6 +1301,11 @@ "vuid": "VUID-vkCreateCommandPool-pCommandPool-parameter", "text": "pCommandPool must be a valid pointer to a VkCommandPool handle", "page": "chapters/cmdbuffers.html" + }, + { + "vuid": "VUID-vkCreateCommandPool-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/cmdbuffers.html" } ] }, @@ -1428,6 +1442,11 @@ "text": "pCommandBuffers must be a valid pointer to an array of pAllocateInfo->commandBufferCount VkCommandBuffer handles", "page": "chapters/cmdbuffers.html" }, + { + "vuid": "VUID-vkAllocateCommandBuffers-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/cmdbuffers.html" + }, { "vuid": "VUID-vkAllocateCommandBuffers-pAllocateInfo::commandBufferCount-arraylength", "text": "pAllocateInfo->commandBufferCount must be greater than 0", @@ -2049,6 +2068,11 @@ "text": "If the variableSampleLocations limit is not supported, and any commandBuffer member of an element of pCommandBufferInfos contains any suspended render pass instances, where a graphics pipeline has been bound, any pipelines bound in the render pass instance that resumes it, or any subsequent render pass instances that resume from that one and so on, must use the same sample locations", "page": "chapters/cmdbuffers.html" }, + { + "vuid": "VUID-VkSubmitInfo2-pNext-09682", + "text": "If the pNext chain of this structure includes a VkFrameBoundaryTensorsARM structure then it must also include a VkFrameBoundaryEXT structure.", + "page": "chapters/cmdbuffers.html" + }, { "vuid": "VUID-VkSubmitInfo2-sType-sType", "text": "sType must be VK_STRUCTURE_TYPE_SUBMIT_INFO_2", @@ -2056,7 +2080,7 @@ }, { "vuid": "VUID-VkSubmitInfo2-pNext-pNext", - "text": "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 VkFrameBoundaryEXT, VkLatencySubmissionPresentIdNV, VkPerformanceQuerySubmitInfoKHR, VkWin32KeyedMutexAcquireReleaseInfoKHR, or VkWin32KeyedMutexAcquireReleaseInfoNV", + "text": "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 VkFrameBoundaryEXT, VkFrameBoundaryTensorsARM, VkLatencySubmissionPresentIdNV, VkPerformanceQuerySubmitInfoKHR, VkWin32KeyedMutexAcquireReleaseInfoKHR, or VkWin32KeyedMutexAcquireReleaseInfoNV", "page": "chapters/cmdbuffers.html" }, { @@ -2499,6 +2523,11 @@ "text": "If the variableSampleLocations limit is not supported, and any element of pCommandBuffers contains any suspended render pass instances, where a graphics pipeline has been bound, any pipelines bound in the render pass instance that resumes it, or any subsequent render pass instances that resume from that one and so on, must use the same sample locations", "page": "chapters/cmdbuffers.html" }, + { + "vuid": "VUID-VkSubmitInfo-pNext-09683", + "text": "If the pNext chain of this structure includes a VkFrameBoundaryTensorsARM structure then it must also include a VkFrameBoundaryEXT structure.", + "page": "chapters/cmdbuffers.html" + }, { "vuid": "VUID-VkSubmitInfo-sType-sType", "text": "sType must be VK_STRUCTURE_TYPE_SUBMIT_INFO", @@ -2506,7 +2535,7 @@ }, { "vuid": "VUID-VkSubmitInfo-pNext-pNext", - "text": "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 VkAmigoProfilingSubmitInfoSEC, VkD3D12FenceSubmitInfoKHR, VkDeviceGroupSubmitInfo, VkFrameBoundaryEXT, VkLatencySubmissionPresentIdNV, VkPerformanceQuerySubmitInfoKHR, VkProtectedSubmitInfo, VkTimelineSemaphoreSubmitInfo, VkWin32KeyedMutexAcquireReleaseInfoKHR, or VkWin32KeyedMutexAcquireReleaseInfoNV", + "text": "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 VkAmigoProfilingSubmitInfoSEC, VkD3D12FenceSubmitInfoKHR, VkDeviceGroupSubmitInfo, VkFrameBoundaryEXT, VkFrameBoundaryTensorsARM, VkLatencySubmissionPresentIdNV, VkPerformanceQuerySubmitInfoKHR, VkProtectedSubmitInfo, VkTimelineSemaphoreSubmitInfo, VkWin32KeyedMutexAcquireReleaseInfoKHR, or VkWin32KeyedMutexAcquireReleaseInfoNV", "page": "chapters/cmdbuffers.html" }, { @@ -2993,12 +3022,12 @@ }, { "vuid": "VUID-vkCmdExecuteCommands-pNext-09299", - "text": "If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, with any color attachment using a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, the pNext chain of VkCommandBufferInheritanceInfo used to create each element of pCommandBuffers must include a VkExternalFormatANDROID structure with an externalFormat matching that used to create the resolve attachment in the render pass", + "text": "If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering, with any color attachment using a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, the pNext chain of VkCommandBufferInheritanceInfo used to create each element of pCommandBuffers must include a VkExternalFormatANDROID structure with an externalFormat matching that used to create the resolve attachment in the render pass", "page": "chapters/cmdbuffers.html" }, { "vuid": "VUID-vkCmdExecuteCommands-pNext-09300", - "text": "If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering with any color attachment using a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and the pNext chain of VkCommandBufferInheritanceInfo does not include a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, the value of VkCommandBufferInheritanceRenderingInfo::rasterizationSamples must be VK_SAMPLE_COUNT_1_BIT", + "text": "If vkCmdExecuteCommands is being called within a render pass instance begun with vkCmdBeginRendering with any color attachment using a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, and the pNext chain of VkCommandBufferInheritanceInfo does not include a VkAttachmentSampleCountInfoAMD or VkAttachmentSampleCountInfoNV structure, the value of VkCommandBufferInheritanceRenderingInfo::rasterizationSamples must be VK_SAMPLE_COUNT_1_BIT", "page": "chapters/cmdbuffers.html" }, { @@ -3201,6 +3230,11 @@ "vuid": "VUID-vkCreateFence-pFence-parameter", "text": "pFence must be a valid pointer to a VkFence handle", "page": "chapters/synchronization.html" + }, + { + "vuid": "VUID-vkCreateFence-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/synchronization.html" } ] }, @@ -3766,6 +3800,11 @@ "vuid": "VUID-vkCreateSemaphore-pSemaphore-parameter", "text": "pSemaphore must be a valid pointer to a VkSemaphore handle", "page": "chapters/synchronization.html" + }, + { + "vuid": "VUID-vkCreateSemaphore-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/synchronization.html" } ] }, @@ -4537,6 +4576,11 @@ "vuid": "VUID-vkCreateEvent-pEvent-parameter", "text": "pEvent must be a valid pointer to a VkEvent handle", "page": "chapters/synchronization.html" + }, + { + "vuid": "VUID-vkCreateEvent-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/synchronization.html" } ] }, @@ -4704,7 +4748,7 @@ }, { "vuid": "VUID-vkCmdSetEvent2-dependencyFlags-03825", - "text": "The dependencyFlags member of pDependencyInfo must be 0", + "text": "The dependencyFlags member of pDependencyInfo must be 0 or VK_DEPENDENCY_ASYMMETRIC_EVENT_BIT_KHR", "page": "chapters/synchronization.html" }, { @@ -4732,6 +4776,21 @@ "text": "The dstStageMask member of any element of the pMemoryBarriers, pBufferMemoryBarriers, or pImageMemoryBarriers members of pDependencyInfo must only include pipeline stages valid for the queue family that was used to create the command pool that commandBuffer was allocated from", "page": "chapters/synchronization.html" }, + { + "vuid": "VUID-vkCmdSetEvent2-dependencyFlags-10785", + "text": "If the dependencyFlags member of pDependencyInfo includes VK_DEPENDENCY_ASYMMETRIC_EVENT_BIT_KHR, the bufferMemoryBarrierCount and imageMemoryBarrierCount members of pDependencyInfo must be 0", + "page": "chapters/synchronization.html" + }, + { + "vuid": "VUID-vkCmdSetEvent2-dependencyFlags-10786", + "text": "If the dependencyFlags member of pDependencyInfo includes VK_DEPENDENCY_ASYMMETRIC_EVENT_BIT_KHR, the memoryBarrierCount member of pDependencyInfo must be 1", + "page": "chapters/synchronization.html" + }, + { + "vuid": "VUID-vkCmdSetEvent2-dependencyFlags-10787", + "text": "If the dependencyFlags member of pDependencyInfo includes VK_DEPENDENCY_ASYMMETRIC_EVENT_BIT_KHR, the srcAccessMask, dstStageMask, and dstAccessMask members of pDependencyInfo->pMemoryBarriers[0] must be 0", + "page": "chapters/synchronization.html" + }, { "vuid": "VUID-vkCmdSetEvent2-commandBuffer-parameter", "text": "commandBuffer must be a valid VkCommandBuffer handle", @@ -4781,6 +4840,11 @@ "text": "For each element of pMemoryBarriers, pNext must be either NULL or a pointer to a valid instance of VkMemoryBarrierAccessFlags3KHR", "page": "chapters/synchronization.html" }, + { + "vuid": "VUID-VkDependencyInfo-pNext-09754", + "text": "If a VkTensorDependencyInfoARM structure is included in the pNext chain, a VkTensorMemoryBarrierARM structure must not be included in the pNext chain", + "page": "chapters/synchronization.html" + }, { "vuid": "VUID-VkDependencyInfo-sType-sType", "text": "sType must be VK_STRUCTURE_TYPE_DEPENDENCY_INFO", @@ -4788,7 +4852,12 @@ }, { "vuid": "VUID-VkDependencyInfo-pNext-pNext", - "text": "pNext must be NULL", + "text": "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 VkTensorDependencyInfoARM or VkTensorMemoryBarrierARM", + "page": "chapters/synchronization.html" + }, + { + "vuid": "VUID-VkDependencyInfo-sType-unique", + "text": "The sType value of each structure in the pNext chain must be unique", "page": "chapters/synchronization.html" }, { @@ -5188,8 +5257,18 @@ "page": "chapters/synchronization.html" }, { - "vuid": "VUID-vkCmdWaitEvents2-pEvents-03838", - "text": "For any element i of pEvents, if that event is signaled by vkCmdSetEvent2, that command’s dependencyInfo parameter must be exactly equal to the ith element of pDependencyInfos", + "vuid": "VUID-vkCmdWaitEvents2-pEvents-10788", + "text": "For any element i of pEvents, if the dependencyFlags member of the ith element of pDependencyInfos does not include VK_DEPENDENCY_ASYMMETRIC_EVENT_BIT_KHR, and if that event is signaled by vkCmdSetEvent2, that command’s dependencyInfo parameter must be exactly equal to the ith element of pDependencyInfos", + "page": "chapters/synchronization.html" + }, + { + "vuid": "VUID-vkCmdWaitEvents2-pEvents-10789", + "text": "For any element i of pEvents, if the dependencyFlags member of the ith element of pDependencyInfos includes VK_DEPENDENCY_ASYMMETRIC_EVENT_BIT_KHR, that event must be signaled by vkCmdSetEvent2 with VK_DEPENDENCY_ASYMMETRIC_EVENT_BIT_KHR", + "page": "chapters/synchronization.html" + }, + { + "vuid": "VUID-vkCmdWaitEvents2-pEvents-10790", + "text": "For any element i of pEvents, if the dependencyFlags member of the ith element of pDependencyInfos includes VK_DEPENDENCY_ASYMMETRIC_EVENT_BIT_KHR, the union of srcStageMask members of all elements of pMemoryBarriers, pBufferMemoryBarriers, and pImageMemoryBarriers of the ith element of pDependencyInfos must equal pDependencyInfos->pMemoryBarriers[0].srcStageMask in the vkCmdSetEvent2 command", "page": "chapters/synchronization.html" }, { @@ -8151,12 +8230,27 @@ }, { "vuid": "VUID-VkImageMemoryBarrier2-subresourceRange-01488", - "text": "subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created", + "text": "If image is not a 3D image or was created without VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, or the maintenance9 feature is not enabled, subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created", + "page": "chapters/synchronization.html" + }, + { + "vuid": "VUID-VkImageMemoryBarrier2-maintenance9-10798", + "text": "If the maintenance9 feature is enabled and image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, subresourceRange.baseArrayLayer must be less than the depth computed from baseMipLevel and extent.depth specified in VkImageCreateInfo when image was created, according to the formula defined in Image Mip Level Sizing", + "page": "chapters/synchronization.html" + }, + { + "vuid": "VUID-VkImageMemoryBarrier2-maintenance9-10799", + "text": "If the maintenance9 feature is enabled and image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, subresourceRange.levelCount must be 1", "page": "chapters/synchronization.html" }, { "vuid": "VUID-VkImageMemoryBarrier2-subresourceRange-01725", - "text": "If subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created", + "text": "If image is not a 3D image or was created without VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, or the maintenance9 feature is not enabled, and subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created", + "page": "chapters/synchronization.html" + }, + { + "vuid": "VUID-VkImageMemoryBarrier2-maintenance9-10800", + "text": "If the maintenance9 feature is enabled, subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, and image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the depth computed from baseMipLevel and extent.depth specified in VkImageCreateInfo when image was created, according to the formula defined in Image Mip Level Sizing", "page": "chapters/synchronization.html" }, { @@ -8490,12 +8584,27 @@ }, { "vuid": "VUID-VkImageMemoryBarrier-subresourceRange-01488", - "text": "subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created", + "text": "If image is not a 3D image or was created without VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, or the maintenance9 feature is not enabled, subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created", + "page": "chapters/synchronization.html" + }, + { + "vuid": "VUID-VkImageMemoryBarrier-maintenance9-10798", + "text": "If the maintenance9 feature is enabled and image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, subresourceRange.baseArrayLayer must be less than the depth computed from baseMipLevel and extent.depth specified in VkImageCreateInfo when image was created, according to the formula defined in Image Mip Level Sizing", + "page": "chapters/synchronization.html" + }, + { + "vuid": "VUID-VkImageMemoryBarrier-maintenance9-10799", + "text": "If the maintenance9 feature is enabled and image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, subresourceRange.levelCount must be 1", "page": "chapters/synchronization.html" }, { "vuid": "VUID-VkImageMemoryBarrier-subresourceRange-01725", - "text": "If subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created", + "text": "If image is not a 3D image or was created without VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, or the maintenance9 feature is not enabled, and subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created", + "page": "chapters/synchronization.html" + }, + { + "vuid": "VUID-VkImageMemoryBarrier-maintenance9-10800", + "text": "If the maintenance9 feature is enabled, subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, and image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the depth computed from baseMipLevel and extent.depth specified in VkImageCreateInfo when image was created, according to the formula defined in Image Mip Level Sizing", "page": "chapters/synchronization.html" }, { @@ -8643,12 +8752,27 @@ }, { "vuid": "VUID-VkHostImageLayoutTransitionInfo-subresourceRange-01488", - "text": "subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created", + "text": "If image is not a 3D image or was created without VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, or the maintenance9 feature is not enabled, subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created", + "page": "chapters/synchronization.html" + }, + { + "vuid": "VUID-VkHostImageLayoutTransitionInfo-maintenance9-10798", + "text": "If the maintenance9 feature is enabled and image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, subresourceRange.baseArrayLayer must be less than the depth computed from baseMipLevel and extent.depth specified in VkImageCreateInfo when image was created, according to the formula defined in Image Mip Level Sizing", + "page": "chapters/synchronization.html" + }, + { + "vuid": "VUID-VkHostImageLayoutTransitionInfo-maintenance9-10799", + "text": "If the maintenance9 feature is enabled and image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, subresourceRange.levelCount must be 1", "page": "chapters/synchronization.html" }, { "vuid": "VUID-VkHostImageLayoutTransitionInfo-subresourceRange-01725", - "text": "If subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created", + "text": "If image is not a 3D image or was created without VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, or the maintenance9 feature is not enabled, and subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created", + "page": "chapters/synchronization.html" + }, + { + "vuid": "VUID-VkHostImageLayoutTransitionInfo-maintenance9-10800", + "text": "If the maintenance9 feature is enabled, subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, and image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the depth computed from baseMipLevel and extent.depth specified in VkImageCreateInfo when image was created, according to the formula defined in Image Mip Level Sizing", "page": "chapters/synchronization.html" }, { @@ -8753,6 +8877,74 @@ } ] }, + "VkTensorMemoryBarrierARM": { + "core": [ + { + "vuid": "VUID-VkTensorMemoryBarrierARM-tensor-09755", + "text": "If tensor was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex and dstQueueFamilyIndex must both be VK_QUEUE_FAMILY_IGNORED", + "page": "chapters/synchronization.html" + }, + { + "vuid": "VUID-VkTensorMemoryBarrierARM-tensor-09756", + "text": "If tensor was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, srcQueueFamilyIndex and dstQueueFamilyIndex must both be either VK_QUEUE_FAMILY_IGNORED, or a valid queue family (see Queue Family Properties)", + "page": "chapters/synchronization.html" + }, + { + "vuid": "VUID-VkTensorMemoryBarrierARM-tensor-09757", + "text": "If tensor was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not VK_QUEUE_FAMILY_IGNORED, at least one of them must be the same as the family of the queue that will execute this barrier", + "page": "chapters/synchronization.html" + }, + { + "vuid": "VUID-VkTensorMemoryBarrierARM-tensor-09758", + "text": "If tensor is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "chapters/synchronization.html" + }, + { + "vuid": "VUID-VkTensorMemoryBarrierARM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_TENSOR_MEMORY_BARRIER_ARM", + "page": "chapters/synchronization.html" + }, + { + "vuid": "VUID-VkTensorMemoryBarrierARM-srcStageMask-parameter", + "text": "srcStageMask must be a valid combination of VkPipelineStageFlagBits2 values", + "page": "chapters/synchronization.html" + }, + { + "vuid": "VUID-VkTensorMemoryBarrierARM-srcAccessMask-parameter", + "text": "srcAccessMask must be a valid combination of VkAccessFlagBits2 values", + "page": "chapters/synchronization.html" + }, + { + "vuid": "VUID-VkTensorMemoryBarrierARM-dstStageMask-parameter", + "text": "dstStageMask must be a valid combination of VkPipelineStageFlagBits2 values", + "page": "chapters/synchronization.html" + }, + { + "vuid": "VUID-VkTensorMemoryBarrierARM-dstAccessMask-parameter", + "text": "dstAccessMask must be a valid combination of VkAccessFlagBits2 values", + "page": "chapters/synchronization.html" + }, + { + "vuid": "VUID-VkTensorMemoryBarrierARM-tensor-parameter", + "text": "tensor must be a valid VkTensorARM handle", + "page": "chapters/synchronization.html" + } + ] + }, + "VkTensorDependencyInfoARM": { + "core": [ + { + "vuid": "VUID-VkTensorDependencyInfoARM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_TENSOR_DEPENDENCY_INFO_ARM", + "page": "chapters/synchronization.html" + }, + { + "vuid": "VUID-VkTensorDependencyInfoARM-pTensorMemoryBarriers-parameter", + "text": "pTensorMemoryBarriers must be a valid pointer to a valid VkTensorMemoryBarrierARM structure", + "page": "chapters/synchronization.html" + } + ] + }, "VkExternalMemoryAcquireUnmodifiedEXT": { "core": [ { @@ -8882,7 +9074,7 @@ }, { "vuid": "VUID-vkCmdBeginRendering-pRenderingInfo-09593", - "text": "For any element of pRenderingInfo->pColorAttachments, if either imageResolveMode is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, or imageView is not VK_NULL_HANDLE and resolveMode is not VK_RESOLVE_MODE_NONE, and resolveImageView is not VK_NULL_HANDLE, resolveImageView must be in the layout specified by resolveImageLayout", + "text": "For any element of pRenderingInfo->pColorAttachments, if either imageResolveMode is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, or imageView is not VK_NULL_HANDLE and resolveMode is not VK_RESOLVE_MODE_NONE, and resolveImageView is not VK_NULL_HANDLE, resolveImageView must be in the layout specified by resolveImageLayout", "page": "chapters/renderpass.html" }, { @@ -9021,7 +9213,7 @@ }, { "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-09476", - "text": "If colorAttachmentCount is not 0 and there is an element of pColorAttachments with either its resolveMode member set to VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, or its imageView member not VK_NULL_HANDLE, and its resolveMode member not set to VK_RESOLVE_MODE_NONE, the resolveImageView member of that element of pColorAttachments must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT", + "text": "If colorAttachmentCount is not 0 and there is an element of pColorAttachments with either its resolveMode member set to VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, or its imageView member not VK_NULL_HANDLE, and its resolveMode member not set to VK_RESOLVE_MODE_NONE, the resolveImageView member of that element of pColorAttachments must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT", "page": "chapters/renderpass.html" }, { @@ -9276,27 +9468,27 @@ }, { "vuid": "VUID-VkRenderingInfo-pDepthAttachment-09318", - "text": "pDepthAttachment->resolveMode must not be VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID", + "text": "pDepthAttachment->resolveMode must not be VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID", "page": "chapters/renderpass.html" }, { "vuid": "VUID-VkRenderingInfo-pStencilAttachment-09319", - "text": "pStencilAttachment->resolveMode must not be VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID", + "text": "pStencilAttachment->resolveMode must not be VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID", "page": "chapters/renderpass.html" }, { "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-09320", - "text": "If colorAttachmentCount is not 1, the resolveMode member of any element of pColorAttachments must not be VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID", + "text": "If colorAttachmentCount is not 1, the resolveMode member of any element of pColorAttachments must not be VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID", "page": "chapters/renderpass.html" }, { "vuid": "VUID-VkRenderingInfo-resolveMode-09321", - "text": "If the resolveMode of any element of pColorAttachments is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView must be VK_NULL_HANDLE", + "text": "If the resolveMode of any element of pColorAttachments is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, VkRenderingFragmentDensityMapAttachmentInfoEXT::imageView must be VK_NULL_HANDLE", "page": "chapters/renderpass.html" }, { "vuid": "VUID-VkRenderingInfo-resolveMode-09322", - "text": "If the resolveMode of any element of pColorAttachments is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView must be VK_NULL_HANDLE", + "text": "If the resolveMode of any element of pColorAttachments is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, VkRenderingFragmentShadingRateAttachmentInfoKHR::imageView must be VK_NULL_HANDLE", "page": "chapters/renderpass.html" }, { @@ -9311,7 +9503,7 @@ }, { "vuid": "VUID-VkRenderingInfo-colorAttachmentCount-09480", - "text": "If colorAttachmentCount is not 0, and there is an element of pColorAttachments with either its resolveMode member set to VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, or its imageView member not set to VK_NULL_HANDLE and its resolveMode member not set to VK_RESOLVE_MODE_NONE, the resolveImageView member of that element of pColorAttachments must have been created with the identity swizzle", + "text": "If colorAttachmentCount is not 0, and there is an element of pColorAttachments with either its resolveMode member set to VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, or its imageView member not set to VK_NULL_HANDLE and its resolveMode member not set to VK_RESOLVE_MODE_NONE, the resolveImageView member of that element of pColorAttachments must have been created with the identity swizzle", "page": "chapters/renderpass.html" }, { @@ -9351,7 +9543,7 @@ }, { "vuid": "VUID-VkRenderingInfo-resolveMode-10644", - "text": "If the resolveMode of any element of pColorAttachments is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, VK_TILE_SHADING_RENDER_PASS_ENABLE_BIT_QCOM must not be included in VkRenderPassTileShadingCreateInfoQCOM::flags", + "text": "If the resolveMode of any element of pColorAttachments is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, VK_TILE_SHADING_RENDER_PASS_ENABLE_BIT_QCOM must not be included in VkRenderPassTileShadingCreateInfoQCOM::flags", "page": "chapters/renderpass.html" }, { @@ -9478,6 +9670,16 @@ "text": "If imageView is not VK_NULL_HANDLE and resolveMode is not VK_RESOLVE_MODE_NONE, resolveImageLayout must not be VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR", "page": "chapters/renderpass.html" }, + { + "vuid": "VUID-VkRenderingAttachmentInfo-imageView-10780", + "text": "If feedback loop is enabled for the attachment identified by imageView, then imageView must have been created with a usage value including VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT, either VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT or VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and either VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT or VK_IMAGE_USAGE_SAMPLED_BIT", + "page": "chapters/renderpass.html" + }, + { + "vuid": "VUID-VkRenderingAttachmentInfo-resolveImageView-10781", + "text": "If feedback loop is enabled for the attachment identified by resolveImageView, then resolveImageView must have been created with a usage value including VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT, either VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT or VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and either VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT or VK_IMAGE_USAGE_SAMPLED_BIT", + "page": "chapters/renderpass.html" + }, { "vuid": "VUID-VkRenderingAttachmentInfo-imageView-06145", "text": "If imageView is not VK_NULL_HANDLE, imageLayout must not be VK_IMAGE_LAYOUT_PRESENT_SRC_KHR", @@ -9490,42 +9692,42 @@ }, { "vuid": "VUID-VkRenderingAttachmentInfo-externalFormatResolve-09323", - "text": "If the externalFormatResolve feature is not enabled, resolveMode must not be VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID", + "text": "If the externalFormatResolve feature is not enabled, resolveMode must not be VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID", "page": "chapters/renderpass.html" }, { "vuid": "VUID-VkRenderingAttachmentInfo-resolveMode-09324", - "text": "If resolveMode is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, resolveImageView must be a valid image view", + "text": "If resolveMode is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, resolveImageView must be a valid image view", "page": "chapters/renderpass.html" }, { "vuid": "VUID-VkRenderingAttachmentInfo-nullColorAttachmentWithExternalFormatResolve-09325", - "text": "If the nullColorAttachmentWithExternalFormatResolve property is VK_TRUE and resolveMode is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, resolveImageView must have been created with an image with a samples value of VK_SAMPLE_COUNT_1_BIT", + "text": "If the nullColorAttachmentWithExternalFormatResolve property is VK_TRUE and resolveMode is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, resolveImageView must have been created with an image with a samples value of VK_SAMPLE_COUNT_1_BIT", "page": "chapters/renderpass.html" }, { "vuid": "VUID-VkRenderingAttachmentInfo-resolveMode-09326", - "text": "If resolveMode is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, resolveImageView must have been created with an external format specified by VkExternalFormatANDROID", + "text": "If resolveMode is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, resolveImageView must have been created with an external format specified by VkExternalFormatANDROID", "page": "chapters/renderpass.html" }, { "vuid": "VUID-VkRenderingAttachmentInfo-resolveMode-09327", - "text": "If resolveMode is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, resolveImageView must have been created with a subresourceRange.layerCount of 1", + "text": "If resolveMode is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, resolveImageView must have been created with a subresourceRange.layerCount of 1", "page": "chapters/renderpass.html" }, { "vuid": "VUID-VkRenderingAttachmentInfo-resolveMode-09328", - "text": "If resolveMode is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID and nullColorAttachmentWithExternalFormatResolve is VK_TRUE, imageView must be VK_NULL_HANDLE", + "text": "If resolveMode is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID and nullColorAttachmentWithExternalFormatResolve is VK_TRUE, imageView must be VK_NULL_HANDLE", "page": "chapters/renderpass.html" }, { "vuid": "VUID-VkRenderingAttachmentInfo-resolveMode-09329", - "text": "If resolveMode is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID and nullColorAttachmentWithExternalFormatResolve is VK_FALSE, imageView must be a valid VkImageView", + "text": "If resolveMode is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID and nullColorAttachmentWithExternalFormatResolve is VK_FALSE, imageView must be a valid VkImageView", "page": "chapters/renderpass.html" }, { "vuid": "VUID-VkRenderingAttachmentInfo-resolveMode-09330", - "text": "If resolveMode is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID and nullColorAttachmentWithExternalFormatResolve is VK_FALSE, imageView must have a format equal to the value of VkAndroidHardwareBufferFormatResolvePropertiesANDROID::colorAttachmentFormat as returned by a call to vkGetAndroidHardwareBufferPropertiesANDROID for the Android hardware buffer that was used to create resolveImageView", + "text": "If resolveMode is VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID and nullColorAttachmentWithExternalFormatResolve is VK_FALSE, imageView must have a format equal to the value of VkAndroidHardwareBufferFormatResolvePropertiesANDROID::colorAttachmentFormat as returned by a call to vkGetAndroidHardwareBufferPropertiesANDROID for the Android hardware buffer that was used to create resolveImageView", "page": "chapters/renderpass.html" }, { @@ -9540,7 +9742,12 @@ }, { "vuid": "VUID-VkRenderingAttachmentInfo-pNext-pNext", - "text": "pNext must be NULL", + "text": "pNext must be NULL or a pointer to a valid instance of VkAttachmentFeedbackLoopInfoEXT", + "page": "chapters/renderpass.html" + }, + { + "vuid": "VUID-VkRenderingAttachmentInfo-sType-unique", + "text": "The sType value of each structure in the pNext chain must be unique", "page": "chapters/renderpass.html" }, { @@ -9590,6 +9797,20 @@ } ] }, + "VkAttachmentFeedbackLoopInfoEXT": { + "core": [ + { + "vuid": "VUID-VkAttachmentFeedbackLoopInfoEXT-unifiedImageLayouts-10782", + "text": "If the unifiedImageLayouts feature is not enabled, feedbackLoopEnable must be VK_FALSE", + "page": "chapters/renderpass.html" + }, + { + "vuid": "VUID-VkAttachmentFeedbackLoopInfoEXT-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_ATTACHMENT_FEEDBACK_LOOP_INFO_EXT", + "page": "chapters/renderpass.html" + } + ] + }, "VkRenderingFragmentShadingRateAttachmentInfoKHR": { "core": [ { @@ -12296,6 +12517,11 @@ "vuid": "VUID-vkCreateFramebuffer-pFramebuffer-parameter", "text": "pFramebuffer must be a valid pointer to a VkFramebuffer handle", "page": "chapters/renderpass.html" + }, + { + "vuid": "VUID-vkCreateFramebuffer-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/renderpass.html" } ] }, @@ -15215,6 +15441,11 @@ "vuid": "VUID-vkCreateValidationCacheEXT-pValidationCache-parameter", "text": "pValidationCache must be a valid pointer to a VkValidationCacheEXT handle", "page": "chapters/shaders.html" + }, + { + "vuid": "VUID-vkCreateValidationCacheEXT-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/shaders.html" } ] }, @@ -15375,6 +15606,11 @@ "vuid": "VUID-vkCreateCudaModuleNV-pModule-parameter", "text": "pModule must be a valid pointer to a VkCudaModuleNV handle", "page": "chapters/shaders.html" + }, + { + "vuid": "VUID-vkCreateCudaModuleNV-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/shaders.html" } ] }, @@ -15428,6 +15664,11 @@ "vuid": "VUID-vkCreateCudaFunctionNV-pFunction-parameter", "text": "pFunction must be a valid pointer to a VkCudaFunctionNV handle", "page": "chapters/shaders.html" + }, + { + "vuid": "VUID-vkCreateCudaFunctionNV-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/shaders.html" } ] }, @@ -16745,7 +16986,7 @@ }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-00764", - "text": "flags must not contain the VK_PIPELINE_CREATE_DISPATCH_BASE flag", + "text": "flags must not contain the VK_PIPELINE_CREATE_DISPATCH_BASE_BIT flag", "page": "chapters/pipelines.html" }, { @@ -16800,7 +17041,7 @@ }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-Input-07904", - "text": "If vertexAttributeRobustness is not enabled and the pipeline is being created with vertex input state and pVertexInputState is not dynamic, then all variables with the Input storage class decorated with Location in the Vertex Execution Model OpEntryPoint must contain a location in VkVertexInputAttributeDescription::location", + "text": "If vertexAttributeRobustness is not enabled, and the maintenance9 feature is not enabled, and the pipeline is being created with vertex input state and pVertexInputState is not dynamic, then all variables with the Input storage class decorated with Location in the Vertex Execution Model OpEntryPoint must contain a location in VkVertexInputAttributeDescription::location", "page": "chapters/pipelines.html" }, { @@ -18322,7 +18563,7 @@ }, { "vuid": "VUID-vkCreateRayTracingPipelinesNV-flags-03816", - "text": "flags must not contain the VK_PIPELINE_CREATE_DISPATCH_BASE flag", + "text": "flags must not contain the VK_PIPELINE_CREATE_DISPATCH_BASE_BIT flag", "page": "chapters/pipelines.html" }, { @@ -18416,7 +18657,7 @@ }, { "vuid": "VUID-vkCreateRayTracingPipelinesKHR-flags-03816", - "text": "flags must not contain the VK_PIPELINE_CREATE_DISPATCH_BASE flag", + "text": "flags must not contain the VK_PIPELINE_CREATE_DISPATCH_BASE_BIT flag", "page": "chapters/pipelines.html" }, { @@ -20638,6 +20879,11 @@ "vuid": "VUID-vkAllocateMemory-pMemory-parameter", "text": "pMemory must be a valid pointer to a VkDeviceMemory handle", "page": "chapters/memory.html" + }, + { + "vuid": "VUID-vkAllocateMemory-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/memory.html" } ] }, @@ -20698,6 +20944,11 @@ "text": "If the pNext chain includes a VkExportMemoryAllocateInfo structure, and any of the handle types specified in VkExportMemoryAllocateInfo::handleTypes require a dedicated allocation, as reported by vkGetPhysicalDeviceImageFormatProperties2 in VkExternalImageFormatProperties::externalMemoryProperties.externalMemoryFeatures, or by vkGetPhysicalDeviceExternalBufferProperties in VkExternalBufferProperties::externalMemoryProperties.externalMemoryFeatures, the pNext chain must include a VkMemoryDedicatedAllocateInfo or VkDedicatedAllocationMemoryAllocateInfoNV structure with either its image or buffer member set to a value other than VK_NULL_HANDLE", "page": "chapters/memory.html" }, + { + "vuid": "VUID-VkMemoryAllocateInfo-pNext-09858", + "text": "If the pNext chain includes a VkExportMemoryAllocateInfo structure, and any of the handle types specified in VkExportMemoryAllocateInfo::handleTypes require a dedicated allocation, as reported by vkGetPhysicalDeviceExternalTensorPropertiesARM in VkExternalTensorPropertiesARM::externalMemoryProperties.externalMemoryFeatures, the pNext chain must include a VkMemoryDedicatedAllocateInfoTensorARM structure with its tensor member set to a value other than VK_NULL_HANDLE", + "page": "chapters/memory.html" + }, { "vuid": "VUID-VkMemoryAllocateInfo-pNext-00640", "text": "If the pNext chain includes a VkExportMemoryAllocateInfo structure, it must not include a VkExportMemoryAllocateInfoNV or VkExportMemoryWin32HandleInfoNV structure", @@ -20925,7 +21176,7 @@ }, { "vuid": "VUID-VkMemoryAllocateInfo-pNext-pNext", - "text": "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 VkDedicatedAllocationMemoryAllocateInfoNV, VkExportMemoryAllocateInfo, VkExportMemoryAllocateInfoNV, VkExportMemoryWin32HandleInfoKHR, VkExportMemoryWin32HandleInfoNV, VkExportMetalObjectCreateInfoEXT, VkImportAndroidHardwareBufferInfoANDROID, VkImportMemoryBufferCollectionFUCHSIA, VkImportMemoryFdInfoKHR, VkImportMemoryHostPointerInfoEXT, VkImportMemoryMetalHandleInfoEXT, VkImportMemoryWin32HandleInfoKHR, VkImportMemoryWin32HandleInfoNV, VkImportMemoryZirconHandleInfoFUCHSIA, VkImportMetalBufferInfoEXT, VkImportScreenBufferInfoQNX, VkMemoryAllocateFlagsInfo, VkMemoryDedicatedAllocateInfo, VkMemoryOpaqueCaptureAddressAllocateInfo, or VkMemoryPriorityAllocateInfoEXT", + "text": "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 VkDedicatedAllocationMemoryAllocateInfoNV, VkExportMemoryAllocateInfo, VkExportMemoryAllocateInfoNV, VkExportMemoryWin32HandleInfoKHR, VkExportMemoryWin32HandleInfoNV, VkExportMetalObjectCreateInfoEXT, VkImportAndroidHardwareBufferInfoANDROID, VkImportMemoryBufferCollectionFUCHSIA, VkImportMemoryFdInfoKHR, VkImportMemoryHostPointerInfoEXT, VkImportMemoryMetalHandleInfoEXT, VkImportMemoryWin32HandleInfoKHR, VkImportMemoryWin32HandleInfoNV, VkImportMemoryZirconHandleInfoFUCHSIA, VkImportMetalBufferInfoEXT, VkImportScreenBufferInfoQNX, VkMemoryAllocateFlagsInfo, VkMemoryDedicatedAllocateInfo, VkMemoryDedicatedAllocateInfoTensorARM, VkMemoryOpaqueCaptureAddressAllocateInfo, or VkMemoryPriorityAllocateInfoEXT", "page": "chapters/memory.html" }, { @@ -21072,6 +21323,30 @@ } ] }, + "VkMemoryDedicatedAllocateInfoTensorARM": { + "core": [ + { + "vuid": "VUID-VkMemoryDedicatedAllocateInfoTensorARM-allocationSize-09710", + "text": "VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the tensor", + "page": "chapters/memory.html" + }, + { + "vuid": "VUID-VkMemoryDedicatedAllocateInfoTensorARM-tensor-09859", + "text": "If VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, the memory being imported must also be a dedicated tensor allocation and tensor must be identical to the tensor associated with the imported memory", + "page": "chapters/memory.html" + }, + { + "vuid": "VUID-VkMemoryDedicatedAllocateInfoTensorARM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_TENSOR_ARM", + "page": "chapters/memory.html" + }, + { + "vuid": "VUID-VkMemoryDedicatedAllocateInfoTensorARM-tensor-parameter", + "text": "tensor must be a valid VkTensorARM handle", + "page": "chapters/memory.html" + } + ] + }, "VkDedicatedAllocationMemoryAllocateInfoNV": { "core": [ { @@ -21172,8 +21447,8 @@ "VkExportMemoryAllocateInfo": { "core": [ { - "vuid": "VUID-VkExportMemoryAllocateInfo-handleTypes-00656", - "text": "The bits in handleTypes must be supported and compatible, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties", + "vuid": "VUID-VkExportMemoryAllocateInfo-handleTypes-09860", + "text": "The bits in handleTypes must be supported and compatible, as reported by VkExternalTensorPropertiesARM, VkExternalImageFormatProperties, or VkExternalBufferProperties", "page": "chapters/memory.html" }, { @@ -21224,8 +21499,8 @@ "VkImportMemoryWin32HandleInfoKHR": { "core": [ { - "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00658", - "text": "If handleType is not 0, it must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties", + "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-09861", + "text": "If handleType is not 0, it must be supported for import, as reported by VkExternalTensorPropertiesARM, VkExternalImageFormatProperties, or VkExternalBufferProperties", "page": "chapters/memory.html" }, { @@ -21461,8 +21736,8 @@ "VkImportMemoryFdInfoKHR": { "core": [ { - "vuid": "VUID-VkImportMemoryFdInfoKHR-handleType-00667", - "text": "If handleType is not 0, it must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties", + "vuid": "VUID-VkImportMemoryFdInfoKHR-handleType-09862", + "text": "If handleType is not 0, it must be supported for import, as reported by VkExternalTensorPropertiesARM, VkExternalImageFormatProperties or VkExternalBufferProperties", "page": "chapters/memory.html" }, { @@ -21703,8 +21978,8 @@ "VkImportAndroidHardwareBufferInfoANDROID": { "core": [ { - "vuid": "VUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-01880", - "text": "If buffer is not NULL, Android hardware buffers must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties", + "vuid": "VUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-09863", + "text": "If buffer is not NULL, Android hardware buffers must be supported for import, as reported by VkExternalTensorPropertiesARM, VkExternalImageFormatProperties, or VkExternalBufferProperties", "page": "chapters/memory.html" }, { @@ -23107,6 +23382,11 @@ "vuid": "VUID-vkCreateBuffer-pBuffer-parameter", "text": "pBuffer must be a valid pointer to a VkBuffer handle", "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkCreateBuffer-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/resources.html" } ] }, @@ -23212,6 +23492,11 @@ "text": "If flags includes VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR, then videoMaintenance1 must be enabled", "page": "chapters/resources.html" }, + { + "vuid": "VUID-VkBufferCreateInfo-pNext-10783", + "text": "If the pNext chain includes a VkVideoProfileListInfoKHR structure and for any element of its pProfiles member videoCodecOperation is VK_VIDEO_CODEC_OPERATION_DECODE_VP9_BIT_KHR, then the videoDecodeVP9 feature must be enabled", + "page": "chapters/resources.html" + }, { "vuid": "VUID-VkBufferCreateInfo-pNext-10249", "text": "If the pNext chain includes a VkVideoProfileListInfoKHR structure and for any element of its pProfiles member videoCodecOperation is VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR, then the videoEncodeAV1 feature must be enabled", @@ -23448,6 +23733,11 @@ "vuid": "VUID-vkCreateBufferView-pView-parameter", "text": "pView must be a valid pointer to a VkBufferView handle", "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkCreateBufferView-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/resources.html" } ] }, @@ -23650,6 +23940,11 @@ "vuid": "VUID-vkCreateImage-pImage-parameter", "text": "pImage must be a valid pointer to a VkImage handle", "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkCreateImage-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/resources.html" } ] }, @@ -23752,7 +24047,7 @@ }, { "vuid": "VUID-VkImageCreateInfo-imageType-10197", - "text": "If flags contains VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT, flags must not include VK_IMAGE_CREATE_SPARSE_ALIASED_BIT, VK_IMAGE_CREATE_SPARSE_BINDING_BIT, or VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT", + "text": "If flags contains VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT and either the maintenance9 feature is not enabled on the device or image2DViewOf3DSparse is VK_FALSE , flags must not include VK_IMAGE_CREATE_SPARSE_ALIASED_BIT, VK_IMAGE_CREATE_SPARSE_BINDING_BIT, or VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT", "page": "chapters/resources.html" }, { @@ -24235,6 +24530,11 @@ "text": "If the pNext chain includes a VkVideoProfileListInfoKHR structure with profileCount greater than 0, then supportedVideoFormat must be VK_TRUE", "page": "chapters/resources.html" }, + { + "vuid": "VUID-VkImageCreateInfo-pNext-10784", + "text": "If the pNext chain includes a VkVideoProfileListInfoKHR structure and for any element of its pProfiles member videoCodecOperation is VK_VIDEO_CODEC_OPERATION_DECODE_VP9_BIT_KHR, then the videoDecodeVP9 feature must be enabled", + "page": "chapters/resources.html" + }, { "vuid": "VUID-VkImageCreateInfo-pNext-10250", "text": "If the pNext chain includes a VkVideoProfileListInfoKHR structure and for any element of its pProfiles member videoCodecOperation is VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR, then the videoEncodeAV1 feature must be enabled", @@ -24365,6 +24665,11 @@ "text": "If the pNext chain contains a VkImageAlignmentControlCreateInfoMESA structure, it must not contain a VkExternalMemoryImageCreateInfo structure", "page": "chapters/resources.html" }, + { + "vuid": "VUID-VkImageCreateInfo-tiling-09711", + "text": "If tiling is VK_IMAGE_TILING_LINEAR then VK_IMAGE_USAGE_TENSOR_ALIASING_BIT_ARM must not be set in usage.", + "page": "chapters/resources.html" + }, { "vuid": "VUID-VkImageCreateInfo-sType-sType", "text": "sType must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO", @@ -25123,6 +25428,11 @@ "vuid": "VUID-vkCreateImageView-pView-parameter", "text": "pView must be a valid pointer to a VkImageView handle", "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkCreateImageView-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/resources.html" } ] }, @@ -26033,6 +26343,11 @@ "vuid": "VUID-vkCreateAccelerationStructureKHR-pAccelerationStructure-parameter", "text": "pAccelerationStructure must be a valid pointer to a VkAccelerationStructureKHR handle", "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkCreateAccelerationStructureKHR-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/resources.html" } ] }, @@ -26238,6 +26553,11 @@ "vuid": "VUID-vkCreateAccelerationStructureNV-pAccelerationStructure-parameter", "text": "pAccelerationStructure must be a valid pointer to a VkAccelerationStructureNV handle", "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkCreateAccelerationStructureNV-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/resources.html" } ] }, @@ -26867,6 +27187,11 @@ "vuid": "VUID-vkCreateMicromapEXT-pMicromap-parameter", "text": "pMicromap must be a valid pointer to a VkMicromapEXT handle", "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkCreateMicromapEXT-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/resources.html" } ] }, @@ -27089,6 +27414,87 @@ } ] }, + "vkGetTensorMemoryRequirementsARM": { + "core": [ + { + "vuid": "VUID-vkGetTensorMemoryRequirementsARM-device-parameter", + "text": "device must be a valid VkDevice handle", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkGetTensorMemoryRequirementsARM-pInfo-parameter", + "text": "pInfo must be a valid pointer to a valid VkTensorMemoryRequirementsInfoARM structure", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkGetTensorMemoryRequirementsARM-pMemoryRequirements-parameter", + "text": "pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure", + "page": "chapters/resources.html" + } + ] + }, + "VkTensorMemoryRequirementsInfoARM": { + "core": [ + { + "vuid": "VUID-VkTensorMemoryRequirementsInfoARM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_TENSOR_MEMORY_REQUIREMENTS_INFO_ARM", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorMemoryRequirementsInfoARM-pNext-pNext", + "text": "pNext must be NULL", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorMemoryRequirementsInfoARM-tensor-parameter", + "text": "tensor must be a valid VkTensorARM handle", + "page": "chapters/resources.html" + } + ] + }, + "vkGetDeviceTensorMemoryRequirementsARM": { + "core": [ + { + "vuid": "VUID-vkGetDeviceTensorMemoryRequirementsARM-tensors-09831", + "text": "The tensors feature must be enabled", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkGetDeviceTensorMemoryRequirementsARM-device-parameter", + "text": "device must be a valid VkDevice handle", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkGetDeviceTensorMemoryRequirementsARM-pInfo-parameter", + "text": "pInfo must be a valid pointer to a valid VkDeviceTensorMemoryRequirementsARM structure", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkGetDeviceTensorMemoryRequirementsARM-pMemoryRequirements-parameter", + "text": "pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure", + "page": "chapters/resources.html" + } + ] + }, + "VkDeviceTensorMemoryRequirementsARM": { + "core": [ + { + "vuid": "VUID-VkDeviceTensorMemoryRequirementsARM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_DEVICE_TENSOR_MEMORY_REQUIREMENTS_ARM", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkDeviceTensorMemoryRequirementsARM-pNext-pNext", + "text": "pNext must be NULL", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkDeviceTensorMemoryRequirementsARM-pCreateInfo-parameter", + "text": "pCreateInfo must be a valid pointer to a valid VkTensorCreateInfoARM structure", + "page": "chapters/resources.html" + } + ] + }, "vkGetBufferMemoryRequirements2": { "core": [ { @@ -28181,6 +28587,114 @@ } ] }, + "vkBindTensorMemoryARM": { + "core": [ + { + "vuid": "VUID-vkBindTensorMemoryARM-device-parameter", + "text": "device must be a valid VkDevice handle", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkBindTensorMemoryARM-pBindInfos-parameter", + "text": "pBindInfos must be a valid pointer to an array of bindInfoCount valid VkBindTensorMemoryInfoARM structures", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkBindTensorMemoryARM-bindInfoCount-arraylength", + "text": "bindInfoCount must be greater than 0", + "page": "chapters/resources.html" + } + ] + }, + "VkBindTensorMemoryInfoARM": { + "core": [ + { + "vuid": "VUID-VkBindTensorMemoryInfoARM-tensor-09712", + "text": "tensor must not already be backed by a memory object", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkBindTensorMemoryInfoARM-memoryOffset-09713", + "text": "memoryOffset must be less than the size of memory", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkBindTensorMemoryInfoARM-memory-09714", + "text": "memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetTensorMemoryRequirementsARM with tensor", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkBindTensorMemoryInfoARM-memoryOffset-09715", + "text": "memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetTensorMemoryRequirementsARM with tensor", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkBindTensorMemoryInfoARM-size-09716", + "text": "The size member of the VkMemoryRequirements structure returned from a call to vkGetTensorMemoryRequirementsARM with tensor must be less than or equal to the size of memory minus memoryOffset", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkBindTensorMemoryInfoARM-tensor-09717", + "text": "If tensor requires a dedicated allocation (as reported by vkGetTensorMemoryRequirementsARM in VkMemoryDedicatedRequirements::requiresDedicatedAllocation for tensor), memory must have been created with VkMemoryDedicatedAllocateInfoTensorARM::tensor equal to tensor", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkBindTensorMemoryInfoARM-memory-09806", + "text": "If the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfoTensorARM structure in its pNext chain, and VkMemoryDedicatedAllocateInfoTensorARM::tensor was not VK_NULL_HANDLE, then tensor must equal VkMemoryDedicatedAllocateInfoTensorARM::tensor, and memoryOffset must be zero", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkBindTensorMemoryInfoARM-memory-09895", + "text": "If the value of VkExportMemoryAllocateInfo::handleTypes used to allocate memory is not 0, it must include at least one of the handles set in VkExternalMemoryTensorCreateInfoARM::handleTypes when tensor was created", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkBindTensorMemoryInfoARM-memory-09896", + "text": "If memory was allocated by a memory import operation, that is not VkImportAndroidHardwareBufferInfoANDROID with a non-NULL buffer value, the external handle type of the imported memory must also have been set in VkExternalMemoryTensorCreateInfoARM::handleTypes when tensor was created", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkBindTensorMemoryInfoARM-memory-09897", + "text": "If memory was allocated with the VkImportAndroidHardwareBufferInfoANDROID memory import operation with a non-NULL buffer value, VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID must also have been set in VkExternalMemoryTensorCreateInfoARM::handleTypes when tensor was created", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkBindTensorMemoryInfoARM-tensor-09718", + "text": "If tensor was created with the VK_TENSOR_CREATE_PROTECTED_BIT_ARM bit set, the tensor must be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkBindTensorMemoryInfoARM-tensor-09719", + "text": "If tensor was created with the VK_TENSOR_CREATE_PROTECTED_BIT_ARM bit not set, the tensor must not be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkBindTensorMemoryInfoARM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_BIND_TENSOR_MEMORY_INFO_ARM", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkBindTensorMemoryInfoARM-pNext-pNext", + "text": "pNext must be NULL", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkBindTensorMemoryInfoARM-tensor-parameter", + "text": "tensor must be a valid VkTensorARM handle", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkBindTensorMemoryInfoARM-memory-parameter", + "text": "memory must be a valid VkDeviceMemory handle", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkBindTensorMemoryInfoARM-commonparent", + "text": "Both of memory, and tensor must have been created, allocated, or retrieved from the same VkDevice", + "page": "chapters/resources.html" + } + ] + }, "vkCreateBufferCollectionFUCHSIA": { "core": [ { @@ -28202,6 +28716,11 @@ "vuid": "VUID-vkCreateBufferCollectionFUCHSIA-pCollection-parameter", "text": "pCollection must be a valid pointer to a VkBufferCollectionFUCHSIA handle", "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkCreateBufferCollectionFUCHSIA-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/resources.html" } ] }, @@ -28553,6 +29072,423 @@ } ] }, + "vkCreateTensorARM": { + "core": [ + { + "vuid": "VUID-vkCreateTensorARM-tensors-09832", + "text": "The tensors feature must be enabled", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkCreateTensorARM-device-parameter", + "text": "device must be a valid VkDevice handle", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkCreateTensorARM-pCreateInfo-parameter", + "text": "pCreateInfo must be a valid pointer to a valid VkTensorCreateInfoARM structure", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkCreateTensorARM-pAllocator-parameter", + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkCreateTensorARM-pTensor-parameter", + "text": "pTensor must be a valid pointer to a VkTensorARM handle", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkCreateTensorARM-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/resources.html" + } + ] + }, + "VkTensorCreateInfoARM": { + "core": [ + { + "vuid": "VUID-VkTensorCreateInfoARM-pDescription-09720", + "text": "If pDescription::tiling is VK_TENSOR_TILING_OPTIMAL_ARM, pDescription::pStrides must be NULL", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorCreateInfoARM-tensorElements-09721", + "text": "tensorElements (as defined in Tensor Creation Limits) must not be greater than VkPhysicalDeviceTensorPropertiesARM::maxTensorElements", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorCreateInfoARM-sharingMode-09722", + "text": "If sharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorCreateInfoARM-sharingMode-09723", + "text": "If sharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorCreateInfoARM-sharingMode-09725", + "text": "If sharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by either vkGetPhysicalDeviceQueueFamilyProperties or vkGetPhysicalDeviceQueueFamilyProperties2 for the physicalDevice that was used to create device", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorCreateInfoARM-pNext-09864", + "text": "If the pNext chain includes a VkExternalMemoryTensorCreateInfoARM structure, its handleTypes member must only contain bits that are also in VkExternalTensorPropertiesARM::externalMemoryProperties.compatibleHandleTypes, as returned by vkGetPhysicalDeviceExternalTensorPropertiesARM with pExternalTensorInfo->handleType equal to any one of the handle types specified in VkExternalMemoryTensorCreateInfoARM::handleTypes", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorCreateInfoARM-flags-09726", + "text": "If flags includes VK_TENSOR_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM, the descriptorBufferCaptureReplay feature must be enabled", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorCreateInfoARM-pNext-09727", + "text": "If the pNext chain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure, flags must contain VK_TENSOR_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorCreateInfoARM-pDescription-09728", + "text": "If pDescription::usage does not have any of the following bits set (i.e. if it is not possible to create a tensor view for this tensor), then the format features must contain the format feature flags required by the usage flags pDescription::format as indicated in the Format Feature Dependent Usage Flags section
\n
    \n
  • \n

    VK_TENSOR_USAGE_SHADER_BIT_ARM

    \n
  • \n
\n
", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorCreateInfoARM-protectedMemory-09729", + "text": "If the protectedMemory feature is not enabled, flags must not contain VK_TENSOR_CREATE_PROTECTED_BIT_ARM", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorCreateInfoARM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_TENSOR_CREATE_INFO_ARM", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorCreateInfoARM-pNext-pNext", + "text": "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 VkExternalMemoryTensorCreateInfoARM or VkOpaqueCaptureDescriptorDataCreateInfoEXT", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorCreateInfoARM-sType-unique", + "text": "The sType value of each structure in the pNext chain must be unique", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorCreateInfoARM-flags-parameter", + "text": "flags must be a valid combination of VkTensorCreateFlagBitsARM values", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorCreateInfoARM-pDescription-parameter", + "text": "pDescription must be a valid pointer to a valid VkTensorDescriptionARM structure", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorCreateInfoARM-sharingMode-parameter", + "text": "sharingMode must be a valid VkSharingMode value", + "page": "chapters/resources.html" + } + ] + }, + "VkExternalMemoryTensorCreateInfoARM": { + "core": [ + { + "vuid": "VUID-VkExternalMemoryTensorCreateInfoARM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_TENSOR_CREATE_INFO_ARM", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkExternalMemoryTensorCreateInfoARM-handleTypes-parameter", + "text": "handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBits values", + "page": "chapters/resources.html" + } + ] + }, + "vkDestroyTensorARM": { + "core": [ + { + "vuid": "VUID-vkDestroyTensorARM-tensor-09730", + "text": "All submitted commands that refer to tensor, either directly or via a VkTensorViewARM, must have completed execution", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkDestroyTensorARM-tensor-09731", + "text": "If VkAllocationCallbacks were provided when tensor was created, a compatible set of callbacks must be provided here", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkDestroyTensorARM-tensor-09732", + "text": "If no VkAllocationCallbacks were provided when tensor was created, pAllocator must be NULL", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkDestroyTensorARM-device-parameter", + "text": "device must be a valid VkDevice handle", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkDestroyTensorARM-tensor-parameter", + "text": "If tensor is not VK_NULL_HANDLE, tensor must be a valid VkTensorARM handle", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkDestroyTensorARM-pAllocator-parameter", + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkDestroyTensorARM-tensor-parent", + "text": "If tensor is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "chapters/resources.html" + } + ] + }, + "VkTensorDescriptionARM": { + "core": [ + { + "vuid": "VUID-VkTensorDescriptionARM-dimensionCount-09733", + "text": "dimensionCount must be less than or equal to VkPhysicalDeviceTensorPropertiesARM::maxTensorDimensionCount", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorDescriptionARM-pDimensions-09734", + "text": "For each i where i ≤ dimensionCount-1, pDimensions[i] must be greater than 0", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorDescriptionARM-pDimensions-09883", + "text": "For each i where i ≤ dimensionCount-1, pDimensions[i] must be less than or equal to VkPhysicalDeviceTensorPropertiesARM::maxPerDimensionTensorElements", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorDescriptionARM-format-09735", + "text": "format must not be VK_FORMAT_UNDEFINED and must be a one-component VkFormat", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorDescriptionARM-pStrides-09736", + "text": "pStrides[dimensionCount-1] must equal the size in bytes of a tensor element", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorDescriptionARM-pStrides-09737", + "text": "For each i, pStrides[i] must be a multiple of the element size", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorDescriptionARM-pStrides-09738", + "text": "For each i, pStrides[i] must be greater than 0 and less than or equal to VkPhysicalDeviceTensorPropertiesARM::maxTensorStride", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorDescriptionARM-pStrides-09884", + "text": "pStrides[0] × pDimensions[0] must be less than or equal to VkPhysicalDeviceTensorPropertiesARM::maxTensorSize", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorDescriptionARM-pStrides-09739", + "text": "For each i greater than 0, pStrides[i-1] must be greater than or equal to pStrides[i] × pDimensions[i] so that no two elements of the tensor reference the same memory address", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorDescriptionARM-None-09740", + "text": "If the tensorNonPacked feature is not enabled, then the members of VkTensorDescriptionARM must describe a packed tensor", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorDescriptionARM-tiling-09741", + "text": "If tiling is VK_TENSOR_TILING_OPTIMAL_ARM and usage is VK_TENSOR_USAGE_IMAGE_ALIASING_BIT_ARM then the size of the tensor along its innermost dimension, i.e. pDimensions[dimensionCount - 1], must be less than or equal to 4", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorDescriptionARM-tiling-09742", + "text": "If tiling is VK_TENSOR_TILING_LINEAR_ARM then VK_TENSOR_USAGE_IMAGE_ALIASING_BIT_ARM must not be set in usage", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorDescriptionARM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_TENSOR_DESCRIPTION_ARM", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorDescriptionARM-pNext-pNext", + "text": "pNext must be NULL", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorDescriptionARM-tiling-parameter", + "text": "tiling must be a valid VkTensorTilingARM value", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorDescriptionARM-format-parameter", + "text": "format must be a valid VkFormat value", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorDescriptionARM-pDimensions-parameter", + "text": "pDimensions must be a valid pointer to an array of dimensionCount int64_t values", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorDescriptionARM-pStrides-parameter", + "text": "If pStrides is not NULL, pStrides must be a valid pointer to an array of dimensionCount int64_t values", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorDescriptionARM-usage-parameter", + "text": "usage must be a valid combination of VkTensorUsageFlagBitsARM values", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorDescriptionARM-usage-requiredbitmask", + "text": "usage must not be 0", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorDescriptionARM-dimensionCount-arraylength", + "text": "dimensionCount must be greater than 0", + "page": "chapters/resources.html" + } + ] + }, + "vkCreateTensorViewARM": { + "core": [ + { + "vuid": "VUID-vkCreateTensorViewARM-device-parameter", + "text": "device must be a valid VkDevice handle", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkCreateTensorViewARM-pCreateInfo-parameter", + "text": "pCreateInfo must be a valid pointer to a valid VkTensorViewCreateInfoARM structure", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkCreateTensorViewARM-pAllocator-parameter", + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkCreateTensorViewARM-pView-parameter", + "text": "pView must be a valid pointer to a VkTensorViewARM handle", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkCreateTensorViewARM-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/resources.html" + } + ] + }, + "VkTensorViewCreateInfoARM": { + "core": [ + { + "vuid": "VUID-VkTensorViewCreateInfoARM-tensor-09743", + "text": "If tensor was not created with VK_TENSOR_CREATE_MUTABLE_FORMAT_BIT_ARM flag, format must be identical to the format used to create tensor", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorViewCreateInfoARM-tensor-09744", + "text": "If tensor was created with VK_TENSOR_CREATE_MUTABLE_FORMAT_BIT_ARM flag, format must be compatible with the format used to create tensor, as defined in Format Compatibility Classes", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorViewCreateInfoARM-flags-09745", + "text": "If flags includes VK_TENSOR_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM, the descriptorBufferCaptureReplay feature must be enabled", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorViewCreateInfoARM-pNext-09746", + "text": "If the pNext chain includes a VkOpaqueCaptureDescriptorDataCreateInfoEXT structure, flags must contain VK_TENSOR_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorViewCreateInfoARM-usage-09747", + "text": "The usage flags of tensor must have at least one of the following bits set:
\n
    \n
  • \n

    VK_TENSOR_USAGE_SHADER_BIT_ARM

    \n
  • \n
\n
", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorViewCreateInfoARM-usage-09748", + "text": "The tensor view’s format features must contain the format feature flags required by the usage flags of tensor for format as indicated in the Format Feature Dependent Usage Flags section", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorViewCreateInfoARM-tensor-09749", + "text": "If tensor is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorViewCreateInfoARM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_TENSOR_VIEW_CREATE_INFO_ARM", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorViewCreateInfoARM-pNext-pNext", + "text": "pNext must be NULL or a pointer to a valid instance of VkOpaqueCaptureDescriptorDataCreateInfoEXT", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorViewCreateInfoARM-sType-unique", + "text": "The sType value of each structure in the pNext chain must be unique", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorViewCreateInfoARM-flags-parameter", + "text": "flags must be a valid combination of VkTensorViewCreateFlagBitsARM values", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorViewCreateInfoARM-tensor-parameter", + "text": "tensor must be a valid VkTensorARM handle", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkTensorViewCreateInfoARM-format-parameter", + "text": "format must be a valid VkFormat value", + "page": "chapters/resources.html" + } + ] + }, + "vkDestroyTensorViewARM": { + "core": [ + { + "vuid": "VUID-vkDestroyTensorViewARM-tensorView-09750", + "text": "All submitted commands that refer to tensorView must have completed execution", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkDestroyTensorViewARM-tensorView-09751", + "text": "If VkAllocationCallbacks were provided when tensorView was created, a compatible set of callbacks must be provided here", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkDestroyTensorViewARM-tensorView-09752", + "text": "If no VkAllocationCallbacks were provided when tensorView was created, pAllocator must be NULL", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkDestroyTensorViewARM-device-parameter", + "text": "device must be a valid VkDevice handle", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkDestroyTensorViewARM-tensorView-parameter", + "text": "If tensorView is not VK_NULL_HANDLE, tensorView must be a valid VkTensorViewARM handle", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkDestroyTensorViewARM-pAllocator-parameter", + "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", + "page": "chapters/resources.html" + }, + { + "vuid": "VUID-vkDestroyTensorViewARM-tensorView-parent", + "text": "If tensorView is a valid handle, it must have been created, allocated, or retrieved from device", + "page": "chapters/resources.html" + } + ] + }, "vkCreateSampler": { "core": [ { @@ -28584,6 +29520,11 @@ "vuid": "VUID-vkCreateSampler-pSampler-parameter", "text": "pSampler must be a valid pointer to a VkSampler handle", "page": "chapters/samplers.html" + }, + { + "vuid": "VUID-vkCreateSampler-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/samplers.html" } ] }, @@ -28958,6 +29899,11 @@ "vuid": "VUID-vkCreateSamplerYcbcrConversion-pYcbcrConversion-parameter", "text": "pYcbcrConversion must be a valid pointer to a VkSamplerYcbcrConversion handle", "page": "chapters/samplers.html" + }, + { + "vuid": "VUID-vkCreateSamplerYcbcrConversion-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/samplers.html" } ] }, @@ -29409,6 +30355,11 @@ "text": "pDescriptorTypes must not contain VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK", "page": "chapters/descriptorsets.html" }, + { + "vuid": "VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-09696", + "text": "pDescriptorTypes must not contain VK_DESCRIPTOR_TYPE_TENSOR_ARM", + "page": "chapters/descriptorsets.html" + }, { "vuid": "VUID-VkMutableDescriptorTypeListEXT-pDescriptorTypes-parameter", "text": "If descriptorTypeCount is not 0, pDescriptorTypes must be a valid pointer to an array of descriptorTypeCount valid VkDescriptorType values", @@ -29567,6 +30518,11 @@ "text": "If an element of pBindingFlags includes VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, that element’s descriptorType must not be VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC", "page": "chapters/descriptorsets.html" }, + { + "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingStorageTensorUpdateAfterBind-09697", + "text": "If VkPhysicalDeviceTensorFeaturesARM::descriptorBindingStorageTensorUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_TENSOR_ARM must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT", + "page": "chapters/descriptorsets.html" + }, { "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-sType-sType", "text": "sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO", @@ -29941,6 +30897,26 @@ "text": "If any element of pSetLayouts was created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT bit set, all elements of pSetLayouts must have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT bit set", "page": "chapters/descriptorsets.html" }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-09698", + "text": "The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_TENSOR_ARM accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceTensorPropertiesARM::maxPerStageDescriptorSetStorageTensors", + "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-09699", + "text": "The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_TENSOR_ARM accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceTensorPropertiesARM::maxDescriptorSetStorageTensors", + "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-09878", + "text": "The total number of descriptors of the type VK_DESCRIPTOR_TYPE_TENSOR_ARM accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceTensorPropertiesARM::maxDescriptorSetUpdateAfterBindStorageTensors", + "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-09879", + "text": "The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_TENSOR_ARM accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceTensorPropertiesARM::maxPerStageDescriptorUpdateAfterBindStorageTensors", + "page": "chapters/descriptorsets.html" + }, { "vuid": "VUID-VkPipelineLayoutCreateInfo-sType-sType", "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO", @@ -30062,6 +31038,11 @@ "vuid": "VUID-vkCreateDescriptorPool-pDescriptorPool-parameter", "text": "pDescriptorPool must be a valid pointer to a VkDescriptorPool handle", "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-vkCreateDescriptorPool-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/descriptorsets.html" } ] }, @@ -30213,6 +31194,11 @@ "text": "pDescriptorSets must be a valid pointer to an array of pAllocateInfo->descriptorSetCount VkDescriptorSet handles", "page": "chapters/descriptorsets.html" }, + { + "vuid": "VUID-vkAllocateDescriptorSets-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/descriptorsets.html" + }, { "vuid": "VUID-vkAllocateDescriptorSets-pAllocateInfo::descriptorSetCount-arraylength", "text": "pAllocateInfo->descriptorSetCount must be greater than 0", @@ -30479,7 +31465,12 @@ }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorCount-00317", - "text": "All consecutive bindings updated via a single VkWriteDescriptorSet structure, except those with a descriptorCount of zero, must have identical descriptorType and stageFlags", + "text": "All consecutive bindings updated via a single VkWriteDescriptorSet structure, except those with a descriptorCount of zero, must have identical descriptorType", + "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorCount-10776", + "text": "All consecutive bindings updated via a single VkWriteDescriptorSet structure, except those with a descriptorCount of zero, must have identical stageFlags", "page": "chapters/descriptorsets.html" }, { @@ -30487,6 +31478,11 @@ "text": "All consecutive bindings updated via a single VkWriteDescriptorSet structure, except those with a descriptorCount of zero, must all either use immutable samplers or must all not use immutable samplers", "page": "chapters/descriptorsets.html" }, + { + "vuid": "VUID-VkWriteDescriptorSet-descriptorCount-10777", + "text": "All consecutive bindings updated via a single VkWriteDescriptorSet structure, except those with a descriptorCount of zero, must have identical VkDescriptorBindingFlagBits", + "page": "chapters/descriptorsets.html" + }, { "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00319", "text": "descriptorType must match the type of dstBinding within dstSet", @@ -30699,7 +31695,7 @@ }, { "vuid": "VUID-VkWriteDescriptorSet-pNext-pNext", - "text": "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 VkWriteDescriptorSetAccelerationStructureKHR, VkWriteDescriptorSetAccelerationStructureNV, VkWriteDescriptorSetInlineUniformBlock, or VkWriteDescriptorSetPartitionedAccelerationStructureNV", + "text": "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 VkWriteDescriptorSetAccelerationStructureKHR, VkWriteDescriptorSetAccelerationStructureNV, VkWriteDescriptorSetInlineUniformBlock, VkWriteDescriptorSetPartitionedAccelerationStructureNV, or VkWriteDescriptorSetTensorARM", "page": "chapters/descriptorsets.html" }, { @@ -30933,6 +31929,35 @@ } ] }, + "VkWriteDescriptorSetTensorARM": { + "core": [ + { + "vuid": "VUID-VkWriteDescriptorSetTensorARM-tensorViewCount-09700", + "text": "tensorViewCount must be equal to descriptorCount in the VkWriteDescriptorSet structure", + "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-VkWriteDescriptorSetTensorARM-nullDescriptor-09898", + "text": "If the nullDescriptor feature is not enabled, each element of pTensorViews must not be VK_NULL_HANDLE", + "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-VkWriteDescriptorSetTensorARM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_TENSOR_ARM", + "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-VkWriteDescriptorSetTensorARM-pTensorViews-parameter", + "text": "pTensorViews must be a valid pointer to an array of tensorViewCount valid VkTensorViewARM handles", + "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-VkWriteDescriptorSetTensorARM-tensorViewCount-arraylength", + "text": "tensorViewCount must be greater than 0", + "page": "chapters/descriptorsets.html" + } + ] + }, "VkCopyDescriptorSet": { "core": [ { @@ -31068,6 +32093,11 @@ "vuid": "VUID-vkCreateDescriptorUpdateTemplate-pDescriptorUpdateTemplate-parameter", "text": "pDescriptorUpdateTemplate must be a valid pointer to a VkDescriptorUpdateTemplate handle", "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-vkCreateDescriptorUpdateTemplate-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/descriptorsets.html" } ] }, @@ -32350,6 +33380,11 @@ "text": "If type is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV and accelerationStructure is not 0, accelerationStructure must contain the handle of a VkAccelerationStructureNV created on device, returned by vkGetAccelerationStructureHandleNV", "page": "chapters/descriptorsets.html" }, + { + "vuid": "VUID-VkDescriptorGetInfoEXT-type-09701", + "text": "If type is VK_DESCRIPTOR_TYPE_TENSOR_ARM, a VkDescriptorGetTensorInfoARM structure must be included in the pNext chain and data is ignored", + "page": "chapters/descriptorsets.html" + }, { "vuid": "VUID-VkDescriptorGetInfoEXT-sType-sType", "text": "sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT", @@ -32357,7 +33392,12 @@ }, { "vuid": "VUID-VkDescriptorGetInfoEXT-pNext-pNext", - "text": "pNext must be NULL", + "text": "pNext must be NULL or a pointer to a valid instance of VkDescriptorGetTensorInfoARM", + "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-VkDescriptorGetInfoEXT-sType-unique", + "text": "The sType value of each structure in the pNext chain must be unique", "page": "chapters/descriptorsets.html" }, { @@ -32535,6 +33575,25 @@ } ] }, + "VkDescriptorGetTensorInfoARM": { + "core": [ + { + "vuid": "VUID-VkDescriptorGetTensorInfoARM-nullDescriptor-09899", + "text": "If the nullDescriptor feature is not enabled, tensorView must not be VK_NULL_HANDLE", + "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-VkDescriptorGetTensorInfoARM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_GET_TENSOR_INFO_ARM", + "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-VkDescriptorGetTensorInfoARM-tensorView-parameter", + "text": "tensorView must be a valid VkTensorViewARM handle", + "page": "chapters/descriptorsets.html" + } + ] + }, "vkCmdBindDescriptorBuffersEXT": { "core": [ { @@ -33410,6 +34469,122 @@ } ] }, + "vkGetTensorOpaqueCaptureDescriptorDataARM": { + "core": [ + { + "vuid": "VUID-vkGetTensorOpaqueCaptureDescriptorDataARM-descriptorBufferCaptureReplay-09702", + "text": "The descriptorBufferCaptureReplay and pname::descriptorBufferTensorDescriptors features must be enabled", + "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-vkGetTensorOpaqueCaptureDescriptorDataARM-pData-09703", + "text": "pData must point to a buffer that is at least VkPhysicalDeviceDescriptorBufferTensorPropertiesARM::tensorCaptureReplayDescriptorDataSize bytes in size", + "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-vkGetTensorOpaqueCaptureDescriptorDataARM-device-09704", + "text": "If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled", + "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-vkGetTensorOpaqueCaptureDescriptorDataARM-device-parameter", + "text": "device must be a valid VkDevice handle", + "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-vkGetTensorOpaqueCaptureDescriptorDataARM-pInfo-parameter", + "text": "pInfo must be a valid pointer to a valid VkTensorCaptureDescriptorDataInfoARM structure", + "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-vkGetTensorOpaqueCaptureDescriptorDataARM-pData-parameter", + "text": "pData must be a pointer value", + "page": "chapters/descriptorsets.html" + } + ] + }, + "VkTensorCaptureDescriptorDataInfoARM": { + "core": [ + { + "vuid": "VUID-VkTensorCaptureDescriptorDataInfoARM-tensor-09705", + "text": "If tensor is not VK_NULL_HANDLE then tensor must have been created with VK_TENSOR_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM set in VkTensorCreateInfoARM::flags", + "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-VkTensorCaptureDescriptorDataInfoARM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_TENSOR_CAPTURE_DESCRIPTOR_DATA_INFO_ARM", + "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-VkTensorCaptureDescriptorDataInfoARM-pNext-pNext", + "text": "pNext must be NULL", + "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-VkTensorCaptureDescriptorDataInfoARM-tensor-parameter", + "text": "tensor must be a valid VkTensorARM handle", + "page": "chapters/descriptorsets.html" + } + ] + }, + "vkGetTensorViewOpaqueCaptureDescriptorDataARM": { + "core": [ + { + "vuid": "VUID-vkGetTensorViewOpaqueCaptureDescriptorDataARM-descriptorBufferCaptureReplay-09706", + "text": "The descriptorBufferCaptureReplay and pname::descriptorBufferTensorDescriptors features must be enabled", + "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-vkGetTensorViewOpaqueCaptureDescriptorDataARM-pData-09707", + "text": "pData must point to a buffer that is at least VkPhysicalDeviceDescriptorBufferTensorPropertiesARM::tensorViewCaptureReplayDescriptorDataSize bytes in size", + "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-vkGetTensorViewOpaqueCaptureDescriptorDataARM-device-09708", + "text": "If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled", + "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-vkGetTensorViewOpaqueCaptureDescriptorDataARM-device-parameter", + "text": "device must be a valid VkDevice handle", + "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-vkGetTensorViewOpaqueCaptureDescriptorDataARM-pInfo-parameter", + "text": "pInfo must be a valid pointer to a valid VkTensorViewCaptureDescriptorDataInfoARM structure", + "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-vkGetTensorViewOpaqueCaptureDescriptorDataARM-pData-parameter", + "text": "pData must be a pointer value", + "page": "chapters/descriptorsets.html" + } + ] + }, + "VkTensorViewCaptureDescriptorDataInfoARM": { + "core": [ + { + "vuid": "VUID-VkTensorViewCaptureDescriptorDataInfoARM-tensorView-09709", + "text": "If tensorView is not VK_NULL_HANDLE then tensorView must have been created with VK_TENSOR_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM set in VkTensorViewCreateInfoARM::flags", + "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-VkTensorViewCaptureDescriptorDataInfoARM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_TENSOR_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_ARM", + "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-VkTensorViewCaptureDescriptorDataInfoARM-pNext-pNext", + "text": "pNext must be NULL", + "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-VkTensorViewCaptureDescriptorDataInfoARM-tensorView-parameter", + "text": "tensorView must be a valid VkTensorViewARM handle", + "page": "chapters/descriptorsets.html" + } + ] + }, "vkCmdSetRenderingAttachmentLocations": { "core": [ { @@ -34353,7 +35528,7 @@ }, { "vuid": "VUID-HitTriangleVertexPositionsKHR-None-08751", - "text": "The acceleration structure corresponding to the current intersection must have been built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR", + "text": "The acceleration structure corresponding to the current intersection must have been built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_BIT_KHR", "page": "chapters/interfaces.html" } ] @@ -36154,6 +37329,11 @@ "vuid": "VUID-vkCreateQueryPool-pQueryPool-parameter", "text": "pQueryPool must be a valid pointer to a VkQueryPool handle", "page": "chapters/queries.html" + }, + { + "vuid": "VUID-vkCreateQueryPool-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/queries.html" } ] }, @@ -36194,6 +37374,11 @@ "text": "queryCount must be greater than 0", "page": "chapters/queries.html" }, + { + "vuid": "VUID-VkQueryPoolCreateInfo-pNext-10779", + "text": "If the pNext chain includes a VkVideoProfileInfoKHR structure and its videoCodecOperation member is VK_VIDEO_CODEC_OPERATION_DECODE_VP9_BIT_KHR, then the videoDecodeVP9 feature must be enabled", + "page": "chapters/queries.html" + }, { "vuid": "VUID-VkQueryPoolCreateInfo-queryType-07133", "text": "If queryType is VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR, then the pNext chain must include a VkVideoProfileInfoKHR structure with videoCodecOperation specifying an encode operation", @@ -36221,7 +37406,7 @@ }, { "vuid": "VUID-VkQueryPoolCreateInfo-pNext-pNext", - "text": "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 VkQueryPoolPerformanceCreateInfoKHR, VkQueryPoolPerformanceQueryCreateInfoINTEL, VkQueryPoolVideoEncodeFeedbackCreateInfoKHR, VkVideoDecodeAV1ProfileInfoKHR, VkVideoDecodeH264ProfileInfoKHR, VkVideoDecodeH265ProfileInfoKHR, VkVideoDecodeUsageInfoKHR, VkVideoEncodeAV1ProfileInfoKHR, VkVideoEncodeH264ProfileInfoKHR, VkVideoEncodeH265ProfileInfoKHR, VkVideoEncodeUsageInfoKHR, or VkVideoProfileInfoKHR", + "text": "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 VkQueryPoolPerformanceCreateInfoKHR, VkQueryPoolPerformanceQueryCreateInfoINTEL, VkQueryPoolVideoEncodeFeedbackCreateInfoKHR, VkVideoDecodeAV1ProfileInfoKHR, VkVideoDecodeH264ProfileInfoKHR, VkVideoDecodeH265ProfileInfoKHR, VkVideoDecodeUsageInfoKHR, VkVideoDecodeVP9ProfileInfoKHR, VkVideoEncodeAV1ProfileInfoKHR, VkVideoEncodeH264ProfileInfoKHR, VkVideoEncodeH265ProfileInfoKHR, VkVideoEncodeUsageInfoKHR, or VkVideoProfileInfoKHR", "page": "chapters/queries.html" }, { @@ -36230,8 +37415,8 @@ "page": "chapters/queries.html" }, { - "vuid": "VUID-VkQueryPoolCreateInfo-flags-zerobitmask", - "text": "flags must be 0", + "vuid": "VUID-VkQueryPoolCreateInfo-flags-parameter", + "text": "flags must be a valid combination of VkQueryPoolCreateFlagBits values", "page": "chapters/queries.html" }, { @@ -39026,22 +40211,22 @@ }, { "vuid": "VUID-vkCmdCopyImage-dstOffset-00150", - "text": "For each element of pRegions, dstOffset.x and (extent.width + dstOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified dstSubresource of dstImage", + "text": "For each element of pRegions, dstOffset.x and (extent.width + dstOffset.x), where extent is adjusted for size-compatibility, must both be greater than or equal to 0 and less than or equal to the width of the specified dstSubresource of dstImage", "page": "chapters/copies.html" }, { "vuid": "VUID-vkCmdCopyImage-dstOffset-00151", - "text": "For each element of pRegions, dstOffset.y and (extent.height + dstOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified dstSubresource of dstImage", + "text": "For each element of pRegions, dstOffset.y and (extent.height + dstOffset.y), where extent is adjusted for size-compatibility, must both be greater than or equal to 0 and less than or equal to the height of the specified dstSubresource of dstImage", "page": "chapters/copies.html" }, { "vuid": "VUID-vkCmdCopyImage-dstImage-00152", - "text": "If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.y must be 0 and extent.height must be 1", + "text": "If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.y must be 0 and extent.height must be 1, where extent is adjusted for size-compatibility", "page": "chapters/copies.html" }, { "vuid": "VUID-vkCmdCopyImage-dstOffset-00153", - "text": "If dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, dstOffset.z and (extent.depth + dstOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified dstSubresource of dstImage", + "text": "If dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, dstOffset.z and (extent.depth + dstOffset.z), where extent is adjusted for size-compatibility, must both be greater than or equal to 0 and less than or equal to the depth of the specified dstSubresource of dstImage", "page": "chapters/copies.html" }, { @@ -39572,22 +40757,22 @@ }, { "vuid": "VUID-VkCopyImageInfo2-dstOffset-00150", - "text": "For each element of pRegions, dstOffset.x and (extent.width + dstOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified dstSubresource of dstImage", + "text": "For each element of pRegions, dstOffset.x and (extent.width + dstOffset.x), where extent is adjusted for size-compatibility, must both be greater than or equal to 0 and less than or equal to the width of the specified dstSubresource of dstImage", "page": "chapters/copies.html" }, { "vuid": "VUID-VkCopyImageInfo2-dstOffset-00151", - "text": "For each element of pRegions, dstOffset.y and (extent.height + dstOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified dstSubresource of dstImage", + "text": "For each element of pRegions, dstOffset.y and (extent.height + dstOffset.y), where extent is adjusted for size-compatibility, must both be greater than or equal to 0 and less than or equal to the height of the specified dstSubresource of dstImage", "page": "chapters/copies.html" }, { "vuid": "VUID-VkCopyImageInfo2-dstImage-00152", - "text": "If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.y must be 0 and extent.height must be 1", + "text": "If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.y must be 0 and extent.height must be 1, where extent is adjusted for size-compatibility", "page": "chapters/copies.html" }, { "vuid": "VUID-VkCopyImageInfo2-dstOffset-00153", - "text": "If dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, dstOffset.z and (extent.depth + dstOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified dstSubresource of dstImage", + "text": "If dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, dstOffset.z and (extent.depth + dstOffset.z), where extent is adjusted for size-compatibility, must both be greater than or equal to 0 and less than or equal to the depth of the specified dstSubresource of dstImage", "page": "chapters/copies.html" }, { @@ -41210,12 +42395,12 @@ }, { "vuid": "VUID-VkCopyMemoryToImageInfo-imageOffset-09114", - "text": "If flags contains VK_HOST_IMAGE_COPY_MEMCPY, the x, y, and z members of the imageOffset member of each element of pRegions must be 0", + "text": "If flags contains VK_HOST_IMAGE_COPY_MEMCPY_BIT, the x, y, and z members of the imageOffset member of each element of pRegions must be 0", "page": "chapters/copies.html" }, { "vuid": "VUID-VkCopyMemoryToImageInfo-dstImage-09115", - "text": "If flags contains VK_HOST_IMAGE_COPY_MEMCPY, the imageExtent member of each element of pRegions must equal the extents of dstImage identified by imageSubresource", + "text": "If flags contains VK_HOST_IMAGE_COPY_MEMCPY_BIT, the imageExtent member of each element of pRegions must equal the extents of dstImage identified by imageSubresource", "page": "chapters/copies.html" }, { @@ -41380,7 +42565,7 @@ }, { "vuid": "VUID-VkCopyMemoryToImageInfo-flags-09393", - "text": "If flags includes VK_HOST_IMAGE_COPY_MEMCPY, for each region in pRegions, memoryRowLength and memoryImageHeight must both be 0", + "text": "If flags includes VK_HOST_IMAGE_COPY_MEMCPY_BIT, for each region in pRegions, memoryRowLength and memoryImageHeight must both be 0", "page": "chapters/copies.html" }, { @@ -41522,12 +42707,12 @@ }, { "vuid": "VUID-VkCopyImageToMemoryInfo-imageOffset-09114", - "text": "If flags contains VK_HOST_IMAGE_COPY_MEMCPY, the x, y, and z members of the imageOffset member of each element of pRegions must be 0", + "text": "If flags contains VK_HOST_IMAGE_COPY_MEMCPY_BIT, the x, y, and z members of the imageOffset member of each element of pRegions must be 0", "page": "chapters/copies.html" }, { "vuid": "VUID-VkCopyImageToMemoryInfo-srcImage-09115", - "text": "If flags contains VK_HOST_IMAGE_COPY_MEMCPY, the imageExtent member of each element of pRegions must equal the extents of srcImage identified by imageSubresource", + "text": "If flags contains VK_HOST_IMAGE_COPY_MEMCPY_BIT, the imageExtent member of each element of pRegions must equal the extents of srcImage identified by imageSubresource", "page": "chapters/copies.html" }, { @@ -41692,7 +42877,7 @@ }, { "vuid": "VUID-VkCopyImageToMemoryInfo-flags-09394", - "text": "If flags includes VK_HOST_IMAGE_COPY_MEMCPY, for each region in pRegions, memoryRowLength and memoryImageHeight must both be 0", + "text": "If flags includes VK_HOST_IMAGE_COPY_MEMCPY_BIT, for each region in pRegions, memoryRowLength and memoryImageHeight must both be 0", "page": "chapters/copies.html" }, { @@ -41839,12 +43024,12 @@ }, { "vuid": "VUID-VkCopyImageToImageInfo-srcOffset-09114", - "text": "If flags contains VK_HOST_IMAGE_COPY_MEMCPY, the x, y, and z members of the srcOffset member of each element of pRegions must be 0", + "text": "If flags contains VK_HOST_IMAGE_COPY_MEMCPY_BIT, the x, y, and z members of the srcOffset member of each element of pRegions must be 0", "page": "chapters/copies.html" }, { "vuid": "VUID-VkCopyImageToImageInfo-srcImage-09115", - "text": "If flags contains VK_HOST_IMAGE_COPY_MEMCPY, the extent member of each element of pRegions must equal the extents of srcImage identified by srcSubresource", + "text": "If flags contains VK_HOST_IMAGE_COPY_MEMCPY_BIT, the extent member of each element of pRegions must equal the extents of srcImage identified by srcSubresource", "page": "chapters/copies.html" }, { @@ -41999,12 +43184,12 @@ }, { "vuid": "VUID-VkCopyImageToImageInfo-dstOffset-09114", - "text": "If flags contains VK_HOST_IMAGE_COPY_MEMCPY, the x, y, and z members of the dstOffset member of each element of pRegions must be 0", + "text": "If flags contains VK_HOST_IMAGE_COPY_MEMCPY_BIT, the x, y, and z members of the dstOffset member of each element of pRegions must be 0", "page": "chapters/copies.html" }, { "vuid": "VUID-VkCopyImageToImageInfo-dstImage-09115", - "text": "If flags contains VK_HOST_IMAGE_COPY_MEMCPY, the extent member of each element of pRegions must equal the extents of dstImage identified by dstSubresource", + "text": "If flags contains VK_HOST_IMAGE_COPY_MEMCPY_BIT, the extent member of each element of pRegions must equal the extents of dstImage identified by dstSubresource", "page": "chapters/copies.html" }, { @@ -44032,6 +45217,173 @@ } ] }, + "vkCmdCopyTensorARM": { + "core": [ + { + "vuid": "VUID-vkCmdCopyTensorARM-commandBuffer-parameter", + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-vkCmdCopyTensorARM-pCopyTensorInfo-parameter", + "text": "pCopyTensorInfo must be a valid pointer to a valid VkCopyTensorInfoARM structure", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-vkCmdCopyTensorARM-commandBuffer-recording", + "text": "commandBuffer must be in the recording state", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-vkCmdCopyTensorARM-commandBuffer-cmdpool", + "text": "The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-vkCmdCopyTensorARM-renderpass", + "text": "This command must only be called outside of a render pass instance", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-vkCmdCopyTensorARM-videocoding", + "text": "This command must only be called outside of a video coding scope", + "page": "chapters/copies.html" + } + ] + }, + "VkCopyTensorInfoARM": { + "core": [ + { + "vuid": "VUID-VkCopyTensorInfoARM-srcTensor-09684", + "text": "srcTensor and dstTensor must have been created with equal values for VkTensorDescriptionARM::dimensionCount", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyTensorInfoARM-pDimensions-09685", + "text": "For each of the elements of VkTensorDescriptionARM::pDimensions, srcTensor and dstTensor must be the same size", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyTensorInfoARM-regionCount-09686", + "text": "regionCount must be equal to 1", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyTensorInfoARM-pSrcOffset-09687", + "text": "pRegions must point to a VkTensorCopyARM structure whose pSrcOffset is NULL or whose elements are all 0", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyTensorInfoARM-pDstOffset-09688", + "text": "pRegions must point to a VkTensorCopyARM structure whose pDstOffset, is NULL or whose elements are all 0", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyTensorInfoARM-pExtent-09689", + "text": "pRegions must point to a VkTensorCopyARM structure whose pExtent is NULL or equal to the VkTensorDescriptionARM::pDimensions array specified when srcTensor and dstTensor were created", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyTensorInfoARM-srcTensor-09690", + "text": "The format features of srcTensor must contain VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyTensorInfoARM-srcTensor-09691", + "text": "srcTensor must have been created with VK_TENSOR_USAGE_TRANSFER_SRC_BIT_ARM usage flag", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyTensorInfoARM-dstTensor-09692", + "text": "The format features of dstTensor must contain VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyTensorInfoARM-dstTensor-09693", + "text": "dstTensor must have been created with VK_TENSOR_USAGE_TRANSFER_DST_BIT_ARM usage flag", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyTensorInfoARM-srcTensor-09694", + "text": "If srcTensor is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyTensorInfoARM-dstTensor-09695", + "text": "If dstTensor is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyTensorInfoARM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_COPY_TENSOR_INFO_ARM", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyTensorInfoARM-pNext-pNext", + "text": "pNext must be NULL", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyTensorInfoARM-srcTensor-parameter", + "text": "srcTensor must be a valid VkTensorARM handle", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyTensorInfoARM-dstTensor-parameter", + "text": "dstTensor must be a valid VkTensorARM handle", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyTensorInfoARM-pRegions-parameter", + "text": "pRegions must be a valid pointer to an array of regionCount valid VkTensorCopyARM structures", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyTensorInfoARM-regionCount-arraylength", + "text": "regionCount must be greater than 0", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyTensorInfoARM-commonparent", + "text": "Both of dstTensor, and srcTensor must have been created, allocated, or retrieved from the same VkDevice", + "page": "chapters/copies.html" + } + ] + }, + "VkTensorCopyARM": { + "core": [ + { + "vuid": "VUID-VkTensorCopyARM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_TENSOR_COPY_ARM", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkTensorCopyARM-pNext-pNext", + "text": "pNext must be NULL", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkTensorCopyARM-pSrcOffset-parameter", + "text": "If pSrcOffset is not NULL, pSrcOffset must be a valid pointer to an array of dimensionCount uint64_t values", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkTensorCopyARM-pDstOffset-parameter", + "text": "If pDstOffset is not NULL, pDstOffset must be a valid pointer to an array of dimensionCount uint64_t values", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkTensorCopyARM-pExtent-parameter", + "text": "If pExtent is not NULL, pExtent must be a valid pointer to an array of dimensionCount uint64_t values", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkTensorCopyARM-dimensionCount-arraylength", + "text": "dimensionCount must be greater than 0", + "page": "chapters/copies.html" + } + ] + }, "VkPipelineInputAssemblyStateCreateInfo": { "core": [ { @@ -44654,6 +46006,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/drawing.html" }, + { + "vuid": "VUID-vkCmdDraw-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDraw-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDraw-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/drawing.html" + }, { "vuid": "VUID-vkCmdDraw-renderPass-02684", "text": "The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", @@ -44700,18 +46067,18 @@ "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDraw-None-09000", - "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDraw-None-10795", + "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDraw-None-09001", - "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDraw-None-10796", + "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDraw-None-09002", - "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDraw-None-10797", + "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { @@ -45036,12 +46403,12 @@ }, { "vuid": "VUID-vkCmdDraw-colorAttachmentCount-09362", - "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDraw-None-09363", - "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { @@ -45056,12 +46423,12 @@ }, { "vuid": "VUID-vkCmdDraw-None-09366", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDraw-rasterizationSamples-09367", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -45076,12 +46443,12 @@ }, { "vuid": "VUID-vkCmdDraw-pFragmentSize-09370", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDraw-pFragmentSize-09371", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -45344,44 +46711,34 @@ "text": "If the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, - { - "vuid": "VUID-vkCmdDraw-None-07637", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, { "vuid": "VUID-vkCmdDraw-None-08666", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDraw-None-08667", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDraw-None-08668", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, - { - "vuid": "VUID-vkCmdDraw-None-07638", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDraw-None-08669", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDraw-None-08670", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDraw-None-08671", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -45736,7 +47093,7 @@ }, { "vuid": "VUID-vkCmdDraw-colorAttachmentCount-09372", - "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", + "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", "page": "chapters/drawing.html" }, { @@ -45866,7 +47223,7 @@ }, { "vuid": "VUID-vkCmdDraw-Input-07939", - "text": "If vertexAttributeRobustness is not enabled and 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 then all variables with the Input storage class decorated with Location in the Vertex Execution Model OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location", + "text": "If the vertexAttributeRobustness feature is not enabled, and the maintenance9 feature is not enabled, and 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 then all variables with the Input storage class decorated with Location in the Vertex Execution Model OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location", "page": "chapters/drawing.html" }, { @@ -46298,6 +47655,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/drawing.html" }, + { + "vuid": "VUID-vkCmdDrawIndexed-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/drawing.html" + }, { "vuid": "VUID-vkCmdDrawIndexed-renderPass-02684", "text": "The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", @@ -46344,18 +47716,18 @@ "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawIndexed-None-09000", - "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawIndexed-None-10795", + "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawIndexed-None-09001", - "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawIndexed-None-10796", + "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawIndexed-None-09002", - "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawIndexed-None-10797", + "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { @@ -46680,12 +48052,12 @@ }, { "vuid": "VUID-vkCmdDrawIndexed-colorAttachmentCount-09362", - "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndexed-None-09363", - "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { @@ -46700,12 +48072,12 @@ }, { "vuid": "VUID-vkCmdDrawIndexed-None-09366", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndexed-rasterizationSamples-09367", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -46720,12 +48092,12 @@ }, { "vuid": "VUID-vkCmdDrawIndexed-pFragmentSize-09370", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndexed-pFragmentSize-09371", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -46988,44 +48360,34 @@ "text": "If the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, - { - "vuid": "VUID-vkCmdDrawIndexed-None-07637", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, { "vuid": "VUID-vkCmdDrawIndexed-None-08666", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08667", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08668", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-None-07638", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08669", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08670", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndexed-None-08671", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -47380,7 +48742,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexed-colorAttachmentCount-09372", - "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", + "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", "page": "chapters/drawing.html" }, { @@ -47510,7 +48872,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexed-Input-07939", - "text": "If vertexAttributeRobustness is not enabled and 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 then all variables with the Input storage class decorated with Location in the Vertex Execution Model OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location", + "text": "If the vertexAttributeRobustness feature is not enabled, and the maintenance9 feature is not enabled, and 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 then all variables with the Input storage class decorated with Location in the Vertex Execution Model OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location", "page": "chapters/drawing.html" }, { @@ -47952,6 +49314,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/drawing.html" }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/drawing.html" + }, { "vuid": "VUID-vkCmdDrawMultiEXT-renderPass-02684", "text": "The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", @@ -47998,18 +49375,18 @@ "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawMultiEXT-None-09000", - "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawMultiEXT-None-10795", + "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawMultiEXT-None-09001", - "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawMultiEXT-None-10796", + "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawMultiEXT-None-09002", - "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawMultiEXT-None-10797", + "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { @@ -48334,12 +49711,12 @@ }, { "vuid": "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-09362", - "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-09363", - "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { @@ -48354,12 +49731,12 @@ }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-09366", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMultiEXT-rasterizationSamples-09367", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -48374,12 +49751,12 @@ }, { "vuid": "VUID-vkCmdDrawMultiEXT-pFragmentSize-09370", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMultiEXT-pFragmentSize-09371", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -48642,44 +50019,34 @@ "text": "If the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, - { - "vuid": "VUID-vkCmdDrawMultiEXT-None-07637", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08666", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08667", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08668", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, - { - "vuid": "VUID-vkCmdDrawMultiEXT-None-07638", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08669", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08670", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-08671", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -49034,7 +50401,7 @@ }, { "vuid": "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-09372", - "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", + "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", "page": "chapters/drawing.html" }, { @@ -49164,7 +50531,7 @@ }, { "vuid": "VUID-vkCmdDrawMultiEXT-Input-07939", - "text": "If vertexAttributeRobustness is not enabled and 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 then all variables with the Input storage class decorated with Location in the Vertex Execution Model OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location", + "text": "If the vertexAttributeRobustness feature is not enabled, and the maintenance9 feature is not enabled, and 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 then all variables with the Input storage class decorated with Location in the Vertex Execution Model OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location", "page": "chapters/drawing.html" }, { @@ -49616,6 +50983,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/drawing.html" }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/drawing.html" + }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-renderPass-02684", "text": "The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", @@ -49662,18 +51044,18 @@ "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09000", - "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-10795", + "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09001", - "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-10796", + "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09002", - "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-10797", + "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { @@ -49998,12 +51380,12 @@ }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-09362", - "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09363", - "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { @@ -50018,12 +51400,12 @@ }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09366", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-09367", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -50038,12 +51420,12 @@ }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pFragmentSize-09370", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pFragmentSize-09371", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -50306,44 +51688,34 @@ "text": "If the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, - { - "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07637", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08666", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08667", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08668", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, - { - "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07638", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08669", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08670", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08671", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -50698,7 +52070,7 @@ }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-09372", - "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", + "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", "page": "chapters/drawing.html" }, { @@ -50828,7 +52200,7 @@ }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-Input-07939", - "text": "If vertexAttributeRobustness is not enabled and 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 then all variables with the Input storage class decorated with Location in the Vertex Execution Model OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location", + "text": "If the vertexAttributeRobustness feature is not enabled, and the maintenance9 feature is not enabled, and 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 then all variables with the Input storage class decorated with Location in the Vertex Execution Model OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location", "page": "chapters/drawing.html" }, { @@ -51295,6 +52667,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/drawing.html" }, + { + "vuid": "VUID-vkCmdDrawIndirect-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/drawing.html" + }, { "vuid": "VUID-vkCmdDrawIndirect-renderPass-02684", "text": "The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", @@ -51341,18 +52728,18 @@ "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawIndirect-None-09000", - "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawIndirect-None-10795", + "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawIndirect-None-09001", - "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawIndirect-None-10796", + "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawIndirect-None-09002", - "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawIndirect-None-10797", + "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { @@ -51677,12 +53064,12 @@ }, { "vuid": "VUID-vkCmdDrawIndirect-colorAttachmentCount-09362", - "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndirect-None-09363", - "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { @@ -51697,12 +53084,12 @@ }, { "vuid": "VUID-vkCmdDrawIndirect-None-09366", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndirect-rasterizationSamples-09367", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -51717,12 +53104,12 @@ }, { "vuid": "VUID-vkCmdDrawIndirect-pFragmentSize-09370", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndirect-pFragmentSize-09371", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -51985,44 +53372,34 @@ "text": "If the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, - { - "vuid": "VUID-vkCmdDrawIndirect-None-07637", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, { "vuid": "VUID-vkCmdDrawIndirect-None-08666", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08667", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08668", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-None-07638", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08669", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08670", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndirect-None-08671", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -52377,7 +53754,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirect-colorAttachmentCount-09372", - "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", + "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", "page": "chapters/drawing.html" }, { @@ -52492,7 +53869,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirect-Input-07939", - "text": "If vertexAttributeRobustness is not enabled and 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 then all variables with the Input storage class decorated with Location in the Vertex Execution Model OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location", + "text": "If the vertexAttributeRobustness feature is not enabled, and the maintenance9 feature is not enabled, and 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 then all variables with the Input storage class decorated with Location in the Vertex Execution Model OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location", "page": "chapters/drawing.html" }, { @@ -52988,6 +54365,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/drawing.html" }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/drawing.html" + }, { "vuid": "VUID-vkCmdDrawIndirectCount-renderPass-02684", "text": "The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", @@ -53034,18 +54426,18 @@ "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawIndirectCount-None-09000", - "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawIndirectCount-None-10795", + "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawIndirectCount-None-09001", - "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawIndirectCount-None-10796", + "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawIndirectCount-None-09002", - "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawIndirectCount-None-10797", + "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { @@ -53370,12 +54762,12 @@ }, { "vuid": "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-09362", - "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-09363", - "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { @@ -53390,12 +54782,12 @@ }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-09366", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndirectCount-rasterizationSamples-09367", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -53410,12 +54802,12 @@ }, { "vuid": "VUID-vkCmdDrawIndirectCount-pFragmentSize-09370", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndirectCount-pFragmentSize-09371", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -53678,44 +55070,34 @@ "text": "If the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-None-07637", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08666", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08667", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08668", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-None-07638", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08669", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08670", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-08671", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -54070,7 +55452,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-09372", - "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", + "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", "page": "chapters/drawing.html" }, { @@ -54185,7 +55567,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirectCount-Input-07939", - "text": "If vertexAttributeRobustness is not enabled and 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 then all variables with the Input storage class decorated with Location in the Vertex Execution Model OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location", + "text": "If the vertexAttributeRobustness feature is not enabled, and the maintenance9 feature is not enabled, and 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 then all variables with the Input storage class decorated with Location in the Vertex Execution Model OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location", "page": "chapters/drawing.html" }, { @@ -54682,6 +56064,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/drawing.html" }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/drawing.html" + }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-renderPass-02684", "text": "The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", @@ -54728,18 +56125,18 @@ "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09000", - "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-10795", + "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09001", - "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-10796", + "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09002", - "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-10797", + "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { @@ -55064,12 +56461,12 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-09362", - "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09363", - "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { @@ -55084,12 +56481,12 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09366", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-09367", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -55104,12 +56501,12 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-pFragmentSize-09370", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-pFragmentSize-09371", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -55372,44 +56769,34 @@ "text": "If the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07637", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08666", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08667", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08668", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07638", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08669", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08670", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08671", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -55764,7 +57151,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-09372", - "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", + "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", "page": "chapters/drawing.html" }, { @@ -55879,7 +57266,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-Input-07939", - "text": "If vertexAttributeRobustness is not enabled and 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 then all variables with the Input storage class decorated with Location in the Vertex Execution Model OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location", + "text": "If the vertexAttributeRobustness feature is not enabled, and the maintenance9 feature is not enabled, and 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 then all variables with the Input storage class decorated with Location in the Vertex Execution Model OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location", "page": "chapters/drawing.html" }, { @@ -56385,6 +57772,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/drawing.html" }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/drawing.html" + }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-renderPass-02684", "text": "The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", @@ -56431,18 +57833,18 @@ "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09000", - "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-10795", + "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09001", - "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-10796", + "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09002", - "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-10797", + "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { @@ -56767,12 +58169,12 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-09362", - "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09363", - "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { @@ -56787,12 +58189,12 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09366", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-09367", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -56807,12 +58209,12 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pFragmentSize-09370", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pFragmentSize-09371", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -57075,44 +58477,34 @@ "text": "If the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07637", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08666", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08667", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08668", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07638", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08669", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08670", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08671", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -57467,7 +58859,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-09372", - "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", + "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", "page": "chapters/drawing.html" }, { @@ -57582,7 +58974,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-Input-07939", - "text": "If vertexAttributeRobustness is not enabled and 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 then all variables with the Input storage class decorated with Location in the Vertex Execution Model OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location", + "text": "If the vertexAttributeRobustness feature is not enabled, and the maintenance9 feature is not enabled, and 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 then all variables with the Input storage class decorated with Location in the Vertex Execution Model OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location", "page": "chapters/drawing.html" }, { @@ -58084,6 +59476,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/drawing.html" }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/drawing.html" + }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-02684", "text": "The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", @@ -58130,18 +59537,18 @@ "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09000", - "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-10795", + "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09001", - "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-10796", + "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09002", - "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-10797", + "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { @@ -58466,12 +59873,12 @@ }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-09362", - "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09363", - "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { @@ -58486,12 +59893,12 @@ }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09366", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-09367", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -58506,12 +59913,12 @@ }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pFragmentSize-09370", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pFragmentSize-09371", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -58774,44 +60181,34 @@ "text": "If the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07637", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08666", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08667", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08668", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07638", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08669", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08670", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08671", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -59166,7 +60563,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-09372", - "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", + "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", "page": "chapters/drawing.html" }, { @@ -59281,7 +60678,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-Input-07939", - "text": "If vertexAttributeRobustness is not enabled and 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 then all variables with the Input storage class decorated with Location in the Vertex Execution Model OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location", + "text": "If the vertexAttributeRobustness feature is not enabled, and the maintenance9 feature is not enabled, and 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 then all variables with the Input storage class decorated with Location in the Vertex Execution Model OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location", "page": "chapters/drawing.html" }, { @@ -59885,6 +61282,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/drawing.html" }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksNV-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/drawing.html" + }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-renderPass-02684", "text": "The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", @@ -59931,18 +61343,18 @@ "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09000", - "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-10795", + "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09001", - "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-10796", + "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09002", - "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawMeshTasksNV-None-10797", + "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { @@ -60267,12 +61679,12 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-09362", - "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09363", - "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { @@ -60287,12 +61699,12 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09366", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-09367", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -60307,12 +61719,12 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-pFragmentSize-09370", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-pFragmentSize-09371", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -60575,44 +61987,34 @@ "text": "If the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07637", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08666", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08667", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08668", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07638", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08669", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08670", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08671", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -60967,7 +62369,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-09372", - "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", + "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", "page": "chapters/drawing.html" }, { @@ -61434,6 +62836,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/drawing.html" }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/drawing.html" + }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-02684", "text": "The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", @@ -61480,18 +62897,18 @@ "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09000", - "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-10795", + "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09001", - "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-10796", + "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09002", - "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-10797", + "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { @@ -61816,12 +63233,12 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-09362", - "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09363", - "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { @@ -61836,12 +63253,12 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09366", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-09367", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -61856,12 +63273,12 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pFragmentSize-09370", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pFragmentSize-09371", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -62124,44 +63541,34 @@ "text": "If the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07637", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08666", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08667", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08668", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07638", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08669", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08670", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08671", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -62516,7 +63923,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-09372", - "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", + "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", "page": "chapters/drawing.html" }, { @@ -63042,6 +64449,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/drawing.html" }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/drawing.html" + }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-02684", "text": "The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", @@ -63088,18 +64510,18 @@ "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09000", - "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-10795", + "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09001", - "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-10796", + "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09002", - "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-10797", + "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { @@ -63424,12 +64846,12 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-09362", - "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09363", - "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { @@ -63444,12 +64866,12 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09366", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-09367", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -63464,12 +64886,12 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pFragmentSize-09370", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pFragmentSize-09371", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -63732,44 +65154,34 @@ "text": "If the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07637", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08666", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08667", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08668", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07638", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08669", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08670", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08671", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -64124,7 +65536,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-09372", - "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", + "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", "page": "chapters/drawing.html" }, { @@ -64661,6 +66073,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/drawing.html" }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksEXT-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/drawing.html" + }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-renderPass-02684", "text": "The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", @@ -64707,18 +66134,18 @@ "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09000", - "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-10795", + "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09001", - "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-10796", + "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09002", - "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-10797", + "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { @@ -65043,12 +66470,12 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-09362", - "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09363", - "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { @@ -65063,12 +66490,12 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-09366", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-09367", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -65083,12 +66510,12 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-pFragmentSize-09370", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-pFragmentSize-09371", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -65351,44 +66778,34 @@ "text": "If the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, - { - "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07637", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08666", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08667", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08668", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07638", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08669", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08670", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-08671", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -65743,7 +67160,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-09372", - "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", + "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", "page": "chapters/drawing.html" }, { @@ -66245,6 +67662,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/drawing.html" }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/drawing.html" + }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-renderPass-02684", "text": "The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", @@ -66291,18 +67723,18 @@ "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09000", - "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-10795", + "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09001", - "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-10796", + "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09002", - "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-10797", + "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { @@ -66627,12 +68059,12 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-09362", - "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09363", - "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { @@ -66647,12 +68079,12 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-09366", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-09367", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -66667,12 +68099,12 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pFragmentSize-09370", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pFragmentSize-09371", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -66935,44 +68367,34 @@ "text": "If the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07637", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08666", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08667", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08668", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07638", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08669", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08670", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-08671", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -67327,7 +68749,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-09372", - "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", + "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", "page": "chapters/drawing.html" }, { @@ -67888,6 +69310,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/drawing.html" }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/drawing.html" + }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-renderPass-02684", "text": "The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", @@ -67934,18 +69371,18 @@ "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09000", - "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-10795", + "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09001", - "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-10796", + "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09002", - "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-10797", + "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { @@ -68270,12 +69707,12 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-09362", - "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09363", - "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { @@ -68290,12 +69727,12 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09366", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-09367", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -68310,12 +69747,12 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pFragmentSize-09370", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pFragmentSize-09371", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -68578,44 +70015,34 @@ "text": "If the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07637", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08666", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08667", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08668", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07638", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08669", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08670", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08671", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -68970,7 +70397,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-09372", - "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", + "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", "page": "chapters/drawing.html" }, { @@ -69507,6 +70934,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/drawing.html" }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawClusterHUAWEI-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/drawing.html" + }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-renderPass-02684", "text": "The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", @@ -69553,18 +70995,18 @@ "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09000", - "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-10795", + "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09001", - "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-10796", + "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09002", - "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-10797", + "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { @@ -69889,12 +71331,12 @@ }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-09362", - "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09363", - "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { @@ -69909,12 +71351,12 @@ }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-09366", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-rasterizationSamples-09367", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -69929,12 +71371,12 @@ }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-pFragmentSize-09370", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-pFragmentSize-09371", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -70197,44 +71639,34 @@ "text": "If the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, - { - "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07637", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08666", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08667", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08668", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, - { - "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07638", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08669", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08670", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-08671", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -70589,7 +72021,7 @@ }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-09372", - "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", + "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", "page": "chapters/drawing.html" }, { @@ -71071,6 +72503,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/drawing.html" }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/drawing.html" + }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-renderPass-02684", "text": "The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", @@ -71117,18 +72564,18 @@ "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09000", - "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-10795", + "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09001", - "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-10796", + "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { - "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09002", - "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-10797", + "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/drawing.html" }, { @@ -71453,12 +72900,12 @@ }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-09362", - "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09363", - "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/drawing.html" }, { @@ -71473,12 +72920,12 @@ }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-09366", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizationSamples-09367", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -71493,12 +72940,12 @@ }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pFragmentSize-09370", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pFragmentSize-09371", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -71761,44 +73208,34 @@ "text": "If the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, - { - "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07637", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08666", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08667", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08668", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/drawing.html" - }, - { - "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07638", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08669", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08670", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-08671", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/drawing.html" }, { @@ -72153,7 +73590,7 @@ }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-09372", - "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", + "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", "page": "chapters/drawing.html" }, { @@ -77535,6 +78972,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/dispatch.html" }, + { + "vuid": "VUID-vkCmdDispatch-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/dispatch.html" + }, + { + "vuid": "VUID-vkCmdDispatch-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/dispatch.html" + }, + { + "vuid": "VUID-vkCmdDispatch-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/dispatch.html" + }, { "vuid": "VUID-vkCmdDispatch-None-10672", "text": "If the per-tile execution model is not enabled, this command must be called outside of a render pass instance", @@ -77959,6 +79411,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/dispatch.html" }, + { + "vuid": "VUID-vkCmdDispatchIndirect-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/dispatch.html" + }, + { + "vuid": "VUID-vkCmdDispatchIndirect-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/dispatch.html" + }, + { + "vuid": "VUID-vkCmdDispatchIndirect-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/dispatch.html" + }, { "vuid": "VUID-vkCmdDispatchIndirect-None-10672", "text": "If the per-tile execution model is not enabled, this command must be called outside of a render pass instance", @@ -78407,6 +79874,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/dispatch.html" }, + { + "vuid": "VUID-vkCmdDispatchBase-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/dispatch.html" + }, + { + "vuid": "VUID-vkCmdDispatchBase-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/dispatch.html" + }, + { + "vuid": "VUID-vkCmdDispatchBase-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/dispatch.html" + }, { "vuid": "VUID-vkCmdDispatchBase-None-10672", "text": "If the per-tile execution model is not enabled, this command must be called outside of a render pass instance", @@ -78484,7 +79966,7 @@ }, { "vuid": "VUID-vkCmdDispatchBase-baseGroupX-00427", - "text": "If any of baseGroupX, baseGroupY, or baseGroupZ are not zero, then the bound compute pipeline must have been created with the VK_PIPELINE_CREATE_DISPATCH_BASE flag or the bound compute shader object must have been created with the VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT flag", + "text": "If any of baseGroupX, baseGroupY, or baseGroupZ are not zero, then the bound compute pipeline must have been created with the VK_PIPELINE_CREATE_DISPATCH_BASE_BIT flag or the bound compute shader object must have been created with the VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT flag", "page": "chapters/dispatch.html" }, { @@ -78851,6 +80333,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/dispatch.html" }, + { + "vuid": "VUID-vkCmdDispatchTileQCOM-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/dispatch.html" + }, + { + "vuid": "VUID-vkCmdDispatchTileQCOM-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/dispatch.html" + }, + { + "vuid": "VUID-vkCmdDispatchTileQCOM-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/dispatch.html" + }, { "vuid": "VUID-vkCmdDispatchTileQCOM-None-10672", "text": "If the per-tile execution model is not enabled, this command must be called outside of a render pass instance", @@ -79294,6 +80791,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/dispatch.html" }, + { + "vuid": "VUID-vkCmdSubpassShadingHUAWEI-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/dispatch.html" + }, + { + "vuid": "VUID-vkCmdSubpassShadingHUAWEI-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/dispatch.html" + }, + { + "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/dispatch.html" + }, { "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-04931", "text": "This command must be called in a subpass with bind point VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI. No draw commands can be called in the same subpass. Only one vkCmdSubpassShadingHUAWEI command can be called in a subpass", @@ -79435,6 +80947,11 @@ "vuid": "VUID-vkCreateIndirectCommandsLayoutEXT-pIndirectCommandsLayout-parameter", "text": "pIndirectCommandsLayout must be a valid pointer to a VkIndirectCommandsLayoutEXT handle", "page": "chapters/device_generated_commands/generatedcommands.html" + }, + { + "vuid": "VUID-vkCreateIndirectCommandsLayoutEXT-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/device_generated_commands/generatedcommands.html" } ] }, @@ -79677,6 +81194,11 @@ "vuid": "VUID-vkCreateIndirectCommandsLayoutNV-pIndirectCommandsLayout-parameter", "text": "pIndirectCommandsLayout must be a valid pointer to a VkIndirectCommandsLayoutNV handle", "page": "chapters/device_generated_commands/generatedcommands.html" + }, + { + "vuid": "VUID-vkCreateIndirectCommandsLayoutNV-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/device_generated_commands/generatedcommands.html" } ] }, @@ -80541,6 +82063,11 @@ "vuid": "VUID-vkCreateIndirectExecutionSetEXT-pIndirectExecutionSet-parameter", "text": "pIndirectExecutionSet must be a valid pointer to a VkIndirectExecutionSetEXT handle", "page": "chapters/device_generated_commands/generatedcommands.html" + }, + { + "vuid": "VUID-vkCreateIndirectExecutionSetEXT-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/device_generated_commands/generatedcommands.html" } ] }, @@ -81287,6 +82814,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/device_generated_commands/generatedcommands.html" }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/device_generated_commands/generatedcommands.html" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/device_generated_commands/generatedcommands.html" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/device_generated_commands/generatedcommands.html" + }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-renderPass-02684", "text": "The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", @@ -81333,18 +82875,18 @@ "page": "chapters/device_generated_commands/generatedcommands.html" }, { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09000", - "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-10795", + "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/device_generated_commands/generatedcommands.html" }, { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09001", - "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-10796", + "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/device_generated_commands/generatedcommands.html" }, { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09002", - "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-10797", + "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/device_generated_commands/generatedcommands.html" }, { @@ -81669,12 +83211,12 @@ }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-09362", - "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/device_generated_commands/generatedcommands.html" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09363", - "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/device_generated_commands/generatedcommands.html" }, { @@ -81689,12 +83231,12 @@ }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09366", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", "page": "chapters/device_generated_commands/generatedcommands.html" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-09367", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", "page": "chapters/device_generated_commands/generatedcommands.html" }, { @@ -81709,12 +83251,12 @@ }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pFragmentSize-09370", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", "page": "chapters/device_generated_commands/generatedcommands.html" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pFragmentSize-09371", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", "page": "chapters/device_generated_commands/generatedcommands.html" }, { @@ -81977,44 +83519,34 @@ "text": "If the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/device_generated_commands/generatedcommands.html" }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07637", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/device_generated_commands/generatedcommands.html" - }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08666", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/device_generated_commands/generatedcommands.html" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08667", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/device_generated_commands/generatedcommands.html" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08668", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/device_generated_commands/generatedcommands.html" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07638", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/device_generated_commands/generatedcommands.html" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08669", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/device_generated_commands/generatedcommands.html" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08670", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/device_generated_commands/generatedcommands.html" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-08671", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/device_generated_commands/generatedcommands.html" }, { @@ -82369,7 +83901,7 @@ }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-09372", - "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", + "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", "page": "chapters/device_generated_commands/generatedcommands.html" }, { @@ -82484,7 +84016,7 @@ }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-Input-07939", - "text": "If vertexAttributeRobustness is not enabled and 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 then all variables with the Input storage class decorated with Location in the Vertex Execution Model OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location", + "text": "If the vertexAttributeRobustness feature is not enabled, and the maintenance9 feature is not enabled, and 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 then all variables with the Input storage class decorated with Location in the Vertex Execution Model OpEntryPoint must contain a location in VkVertexInputAttributeDescription2EXT::location", "page": "chapters/device_generated_commands/generatedcommands.html" }, { @@ -83164,6 +84696,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/device_generated_commands/generatedcommands.html" }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/device_generated_commands/generatedcommands.html" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/device_generated_commands/generatedcommands.html" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/device_generated_commands/generatedcommands.html" + }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-renderPass-02684", "text": "The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS", @@ -83210,18 +84757,18 @@ "page": "chapters/device_generated_commands/generatedcommands.html" }, { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-09000", - "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-10795", + "text": "If a color attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is\nset on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_COLOR_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/device_generated_commands/generatedcommands.html" }, { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-09001", - "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-10796", + "text": "If a depth attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_DEPTH_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/device_generated_commands/generatedcommands.html" }, { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-09002", - "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, it is not in the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", + "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-10797", + "text": "If a stencil attachment is written by any prior command in this subpass or by the load, store, or resolve operations for this subpass, feedback loop is not enabled for it, and either:
\n
    \n
  • \n

    \nthe\nVK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT\nis set on the bound pipeline\nor

    \n
  • \n
  • \n

    the last call to vkCmdSetAttachmentFeedbackLoopEnableEXT included\nVK_IMAGE_ASPECT_STENCIL_BIT and

    \n
    \n
      \n
    • \n

      there is no bound graphics pipeline or

      \n
    • \n
    • \n

      the bound graphics pipeline was created with\nVK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT

      \n
    • \n
    \n
    \n
  • \n
\n
\n
\n

it must not be accessed in any way other than as an attachment by this\ncommand

\n
", "page": "chapters/device_generated_commands/generatedcommands.html" }, { @@ -83546,12 +85093,12 @@ }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-colorAttachmentCount-09362", - "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If the current render pass instance was begun with vkCmdBeginRendering, with a VkRenderingInfo::colorAttachmentCount equal to 1, there is no shader object bound to any graphics stage, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a resolveImageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/device_generated_commands/generatedcommands.html" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-09363", - "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", + "text": "If there is no shader object bound to any graphics stage, the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, and a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, each element of the VkRenderingInfo::pColorAttachments array with a imageView not equal to VK_NULL_HANDLE must have been created with an image created with a VkExternalFormatANDROID::externalFormat value equal to the VkExternalFormatANDROID::externalFormat value used to create the bound graphics pipeline", "page": "chapters/device_generated_commands/generatedcommands.html" }, { @@ -83566,12 +85113,12 @@ }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-09366", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetColorBlendEnableEXT must have set blend enable to VK_FALSE prior to this drawing command", "page": "chapters/device_generated_commands/generatedcommands.html" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-rasterizationSamples-09367", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetRasterizationSamplesEXT must have set rasterizationSamples to VK_SAMPLE_COUNT_1_BIT prior to this drawing command", "page": "chapters/device_generated_commands/generatedcommands.html" }, { @@ -83586,12 +85133,12 @@ }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-pFragmentSize-09370", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->width to 1 prior to this drawing command", "page": "chapters/device_generated_commands/generatedcommands.html" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-pFragmentSize-09371", - "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", + "text": "If there is a shader object bound to any graphics stage, and the current render pass includes a color attachment that uses the VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID resolve mode, then vkCmdSetFragmentShadingRateKHR must have set pFragmentSize->height to 1 prior to this drawing command", "page": "chapters/device_generated_commands/generatedcommands.html" }, { @@ -83854,44 +85401,34 @@ "text": "If the VK_EXT_provoking_vertex extension is enabled, a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetProvokingVertexModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/device_generated_commands/generatedcommands.html" }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07637", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/device_generated_commands/generatedcommands.html" - }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08666", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/device_generated_commands/generatedcommands.html" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08667", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/device_generated_commands/generatedcommands.html" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08668", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", - "page": "chapters/device_generated_commands/generatedcommands.html" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-07638", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, and the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineRasterizationModeEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/device_generated_commands/generatedcommands.html" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08669", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to any graphics stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPolygonModeEXT in the current command buffer set polygonMode to VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are 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_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of polygonMode is VK_POLYGON_MODE_LINE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/device_generated_commands/generatedcommands.html" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08670", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound to the VK_SHADER_STAGE_VERTEX_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the most recent call to vkCmdSetPrimitiveTopology in the current command buffer set primitiveTopology to any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, a VK_SHADER_STAGE_VERTEX_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, and the current value of primitiveTopology is any line topology, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/device_generated_commands/generatedcommands.html" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-08671", - "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object that outputs line primitives is bound to the VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", + "text": "If any of the stippledRectangularLines, stippledBresenhamLines or stippledSmoothLines features are enabled, and a shader object is bound or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled, either a VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or VK_SHADER_STAGE_GEOMETRY_BIT stage is bound, the current value of rasterizerDiscardEnable is VK_FALSE, then vkCmdSetLineStippleEnableEXT must have been called and not subsequently invalidated in the current command buffer prior to this drawing command", "page": "chapters/device_generated_commands/generatedcommands.html" }, { @@ -84246,7 +85783,7 @@ }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-colorAttachmentCount-09372", - "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", + "text": "If the current render pass instance was begun with vkCmdBeginRendering and a VkRenderingInfo::colorAttachmentCount equal to 1, a color attachment with a resolve mode of VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID, and a fragment shader is bound, it must not declare the DepthReplacing or StencilRefReplacingEXT execution modes", "page": "chapters/device_generated_commands/generatedcommands.html" }, { @@ -85251,6 +86788,11 @@ "text": "For each element of pSignalSemaphores created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE the corresponding element of VkTimelineSemaphoreSubmitInfo::pSignalSemaphoreValues must have a value which does not differ from the current value of the semaphore or from the value of any outstanding semaphore wait or signal operation on that semaphore by more than maxTimelineSemaphoreValueDifference", "page": "chapters/sparsemem.html" }, + { + "vuid": "VUID-VkBindSparseInfo-pNext-09753", + "text": "If the pNext chain of this structure includes a VkFrameBoundaryTensorsARM structure then it must also include a VkFrameBoundaryEXT structure.", + "page": "chapters/sparsemem.html" + }, { "vuid": "VUID-VkBindSparseInfo-sType-sType", "text": "sType must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO", @@ -85258,7 +86800,7 @@ }, { "vuid": "VUID-VkBindSparseInfo-pNext-pNext", - "text": "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 VkDeviceGroupBindSparseInfo, VkFrameBoundaryEXT, or VkTimelineSemaphoreSubmitInfo", + "text": "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 VkDeviceGroupBindSparseInfo, VkFrameBoundaryEXT, VkFrameBoundaryTensorsARM, or VkTimelineSemaphoreSubmitInfo", "page": "chapters/sparsemem.html" }, { @@ -86995,7 +88537,7 @@ }, { "vuid": "VUID-VkSurfaceCapabilities2KHR-pNext-pNext", - "text": "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 VkDisplayNativeHdrSurfaceCapabilitiesAMD, VkLatencySurfaceCapabilitiesNV, VkSharedPresentSurfaceCapabilitiesKHR, VkSurfaceCapabilitiesFullScreenExclusiveEXT, VkSurfaceCapabilitiesPresentBarrierNV, VkSurfacePresentModeCompatibilityEXT, VkSurfacePresentScalingCapabilitiesEXT, or VkSurfaceProtectedCapabilitiesKHR", + "text": "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 VkDisplayNativeHdrSurfaceCapabilitiesAMD, VkLatencySurfaceCapabilitiesNV, VkSharedPresentSurfaceCapabilitiesKHR, VkSurfaceCapabilitiesFullScreenExclusiveEXT, VkSurfaceCapabilitiesPresentBarrierNV, VkSurfaceCapabilitiesPresentId2KHR, VkSurfaceCapabilitiesPresentWait2KHR, VkSurfacePresentModeCompatibilityEXT, VkSurfacePresentScalingCapabilitiesEXT, or VkSurfaceProtectedCapabilitiesKHR", "page": "chapters/VK_KHR_surface/wsi.html" }, { @@ -87092,6 +88634,24 @@ } ] }, + "VkSurfaceCapabilitiesPresentId2KHR": { + "core": [ + { + "vuid": "VUID-VkSurfaceCapabilitiesPresentId2KHR-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_ID_2_KHR", + "page": "chapters/VK_KHR_surface/wsi.html" + } + ] + }, + "VkSurfaceCapabilitiesPresentWait2KHR": { + "core": [ + { + "vuid": "VUID-VkSurfaceCapabilitiesPresentWait2KHR-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_WAIT_2_KHR", + "page": "chapters/VK_KHR_surface/wsi.html" + } + ] + }, "vkGetPhysicalDeviceSurfaceCapabilities2EXT": { "core": [ { @@ -87541,6 +89101,20 @@ } ] }, + "VkPresentWait2InfoKHR": { + "core": [ + { + "vuid": "VUID-VkPresentWait2InfoKHR-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PRESENT_WAIT_2_INFO_KHR", + "page": "chapters/VK_KHR_surface/wsi.html" + }, + { + "vuid": "VUID-VkPresentWait2InfoKHR-pNext-pNext", + "text": "pNext must be NULL", + "page": "chapters/VK_KHR_surface/wsi.html" + } + ] + }, "vkGetSwapchainStatusKHR": { "core": [ { @@ -87581,6 +89155,11 @@ "vuid": "VUID-vkCreateSwapchainKHR-pSwapchain-parameter", "text": "pSwapchain must be a valid pointer to a VkSwapchainKHR handle", "page": "chapters/VK_KHR_surface/wsi.html" + }, + { + "vuid": "VUID-vkCreateSwapchainKHR-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/VK_KHR_surface/wsi.html" } ] }, @@ -88102,6 +89681,11 @@ "text": "pSwapchains must be a valid pointer to an array of swapchainCount VkSwapchainKHR handles", "page": "chapters/VK_KHR_surface/wsi.html" }, + { + "vuid": "VUID-vkCreateSharedSwapchainsKHR-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/VK_KHR_surface/wsi.html" + }, { "vuid": "VUID-vkCreateSharedSwapchainsKHR-swapchainCount-arraylength", "text": "swapchainCount must be greater than 0", @@ -88396,6 +89980,21 @@ "text": "If any element of the pSwapchains array has been created with VkSwapchainPresentModesCreateInfoEXT, all of the elements of this array must be created with VkSwapchainPresentModesCreateInfoEXT", "page": "chapters/VK_KHR_surface/wsi.html" }, + { + "vuid": "VUID-VkPresentInfoKHR-pNext-09759", + "text": "If the pNext chain of this structure includes a VkFrameBoundaryTensorsARM structure then it must also include a VkFrameBoundaryEXT structure.", + "page": "chapters/VK_KHR_surface/wsi.html" + }, + { + "vuid": "VUID-VkPresentInfoKHR-pNext-10821", + "text": "If a VkPresentId2KHR structure is included in the pNext chain, and the presentId2 feature is not enabled, each presentIds entry in that structure must be zero", + "page": "chapters/VK_KHR_surface/wsi.html" + }, + { + "vuid": "VUID-VkPresentInfoKHR-presentId2Supported-10822", + "text": "If a VkPresentId2KHR structure is included and contains non-zero presentIds, presentId2Supported must be VK_TRUE in the VkSurfaceCapabilitiesPresentId2KHR structure returned by vkGetPhysicalDeviceSurfaceCapabilities2KHR for the surface", + "page": "chapters/VK_KHR_surface/wsi.html" + }, { "vuid": "VUID-VkPresentInfoKHR-sType-sType", "text": "sType must be VK_STRUCTURE_TYPE_PRESENT_INFO_KHR", @@ -88403,7 +90002,7 @@ }, { "vuid": "VUID-VkPresentInfoKHR-pNext-pNext", - "text": "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", + "text": "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, VkFrameBoundaryTensorsARM, VkPresentFrameTokenGGP, VkPresentId2KHR, VkPresentIdKHR, VkPresentRegionsKHR, VkPresentTimesInfoGOOGLE, VkSetPresentConfigNV, VkSwapchainPresentFenceInfoEXT, or VkSwapchainPresentModeInfoEXT", "page": "chapters/VK_KHR_surface/wsi.html" }, { @@ -88650,6 +90249,84 @@ } ] }, + "VkPresentId2KHR": { + "core": [ + { + "vuid": "VUID-VkPresentId2KHR-swapchainCount-10818", + "text": "swapchainCount must be the same value as VkPresentInfoKHR::swapchainCount, where this VkPresentId2KHR is in the pNext chain of the VkPresentInfoKHR structure", + "page": "chapters/VK_KHR_surface/wsi.html" + }, + { + "vuid": "VUID-VkPresentId2KHR-presentIds-10819", + "text": "Each presentIds entry must be greater than any previous presentIds entry passed for the associated pSwapchains entry", + "page": "chapters/VK_KHR_surface/wsi.html" + }, + { + "vuid": "VUID-VkPresentId2KHR-None-10820", + "text": "The swapchain must have been created with VK_SWAPCHAIN_CREATE_PRESENT_ID_2_BIT_KHR bit set in the VkSwapchainCreateFlagBitsKHR field", + "page": "chapters/VK_KHR_surface/wsi.html" + }, + { + "vuid": "VUID-VkPresentId2KHR-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PRESENT_ID_2_KHR", + "page": "chapters/VK_KHR_surface/wsi.html" + }, + { + "vuid": "VUID-VkPresentId2KHR-pPresentIds-parameter", + "text": "If pPresentIds is not NULL, pPresentIds must be a valid pointer to an array of swapchainCount uint64_t values", + "page": "chapters/VK_KHR_surface/wsi.html" + }, + { + "vuid": "VUID-VkPresentId2KHR-swapchainCount-arraylength", + "text": "swapchainCount must be greater than 0", + "page": "chapters/VK_KHR_surface/wsi.html" + } + ] + }, + "vkWaitForPresent2KHR": { + "core": [ + { + "vuid": "VUID-vkWaitForPresent2KHR-presentWait2-10814", + "text": "The presentWait2 feature must be enabled", + "page": "chapters/VK_KHR_surface/wsi.html" + }, + { + "vuid": "VUID-vkWaitForPresent2KHR-None-10815", + "text": "The VkSurfaceCapabilitiesPresentWait2KHR surface capability must be present for the underlying surface", + "page": "chapters/VK_KHR_surface/wsi.html" + }, + { + "vuid": "VUID-vkWaitForPresent2KHR-None-10816", + "text": "The swapchain must have been created with VK_SWAPCHAIN_CREATE_PRESENT_WAIT_2_BIT_KHR bit set in the VkSwapchainCreateFlagBitsKHR field", + "page": "chapters/VK_KHR_surface/wsi.html" + }, + { + "vuid": "VUID-vkWaitForPresent2KHR-presentId-10817", + "text": "The presentId value must have been associated with a vkQueuePresentKHR request on the swapchain which returned a non-error value", + "page": "chapters/VK_KHR_surface/wsi.html" + }, + { + "vuid": "VUID-vkWaitForPresent2KHR-device-parameter", + "text": "device must be a valid VkDevice handle", + "page": "chapters/VK_KHR_surface/wsi.html" + }, + { + "vuid": "VUID-vkWaitForPresent2KHR-swapchain-parameter", + "text": "swapchain must be a valid VkSwapchainKHR handle", + "page": "chapters/VK_KHR_surface/wsi.html" + }, + { + "vuid": "VUID-vkWaitForPresent2KHR-pPresentWait2Info-parameter", + "text": "pPresentWait2Info must be a valid pointer to a valid VkPresentWait2InfoKHR structure", + "page": "chapters/VK_KHR_surface/wsi.html" + }, + { + "vuid": "VUID-vkWaitForPresent2KHR-swapchain-parent", + "text": "swapchain must have been created, allocated, or retrieved from device", + "page": "chapters/VK_KHR_surface/wsi.html" + } + ] + }, "VkPresentFrameTokenGGP": { "core": [ { @@ -89164,6 +90841,11 @@ "vuid": "VUID-vkCreateDeferredOperationKHR-pDeferredOperation-parameter", "text": "pDeferredOperation must be a valid pointer to a VkDeferredOperationKHR handle", "page": "chapters/VK_KHR_deferred_host_operations/deferred_host_operations.html" + }, + { + "vuid": "VUID-vkCreateDeferredOperationKHR-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/VK_KHR_deferred_host_operations/deferred_host_operations.html" } ] }, @@ -89289,6 +90971,11 @@ "vuid": "VUID-vkCreatePrivateDataSlot-pPrivateDataSlot-parameter", "text": "pPrivateDataSlot must be a valid pointer to a VkPrivateDataSlot handle", "page": "chapters/VK_EXT_private_data.html" + }, + { + "vuid": "VUID-vkCreatePrivateDataSlot-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/VK_EXT_private_data.html" } ] }, @@ -89851,7 +91538,7 @@ }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-10607", - "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT is set in VkAccelerationStructureInstanceKHR::flags then geometry.instances.data.deviceAddress must refer to an acceleration structure that was built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT set in VkAccelerationStructureBuildGeometryInfoKHR::flags", + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_BIT_EXT is set in VkAccelerationStructureInstanceKHR::flags then geometry.instances.data.deviceAddress must refer to an acceleration structure that was built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_BIT_EXT set in VkAccelerationStructureBuildGeometryInfoKHR::flags", "page": "chapters/accelstructures.html" }, { @@ -90220,7 +91907,7 @@ }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-10607", - "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT is set in VkAccelerationStructureInstanceKHR::flags then geometry.instances.data.deviceAddress must refer to an acceleration structure that was built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT set in VkAccelerationStructureBuildGeometryInfoKHR::flags", + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_BIT_EXT is set in VkAccelerationStructureInstanceKHR::flags then geometry.instances.data.deviceAddress must refer to an acceleration structure that was built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_BIT_EXT set in VkAccelerationStructureBuildGeometryInfoKHR::flags", "page": "chapters/accelstructures.html" }, { @@ -90389,7 +92076,7 @@ }, { "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-flags-07334", - "text": "If flags has the VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT bit set then it must not have the VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT bit set", + "text": "If flags has the VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_BIT_EXT bit set then it must not have the VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_BIT_EXT bit set", "page": "chapters/accelstructures.html" }, { @@ -90783,6 +92470,16 @@ "text": "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:
\n\n
", "page": "chapters/accelstructures.html" }, + { + "vuid": "VUID-VkAccelerationStructureBuildRangeInfoKHR-maxVertex-10774", + "text": "For geometries of type VK_GEOMETRY_TYPE_TRIANGLES_KHR, if the geometry uses indices, then VkAccelerationStructureGeometryTrianglesDataKHR::maxVertex must be greater than or equal to firstVertex plus the maximum index value found in the VkAccelerationStructureGeometryTrianglesDataKHR::indexData in the range [primitiveOffset, primitiveOffset
primitiveCount x 3]
", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkAccelerationStructureBuildRangeInfoKHR-None-10775", + "text": "For geometries of type VK_GEOMETRY_TYPE_TRIANGLES_KHR, if the geometry does not use indices, then VkAccelerationStructureGeometryTrianglesDataKHR::maxVertex must be greater than or equal to firstVertex + primitiveCount x 3 - 1", + "page": "chapters/accelstructures.html" + }, { "vuid": "VUID-VkAccelerationStructureBuildRangeInfoKHR-transformOffset-03658", "text": "For geometries of type VK_GEOMETRY_TYPE_TRIANGLES_KHR, the offset transformOffset from VkAccelerationStructureGeometryTrianglesDataKHR::transformData must be a multiple of 16", @@ -94419,6 +96116,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/raytracing.html" }, + { + "vuid": "VUID-vkCmdTraceRaysNV-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/raytracing.html" + }, { "vuid": "VUID-vkCmdTraceRaysNV-None-03429", "text": "Any shader group handle referenced by this call must have been queried from the bound ray tracing pipeline", @@ -94943,6 +96655,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/raytracing.html" }, + { + "vuid": "VUID-vkCmdTraceRaysKHR-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysKHR-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysKHR-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/raytracing.html" + }, { "vuid": "VUID-vkCmdTraceRaysKHR-None-03429", "text": "Any shader group handle referenced by this call must have been queried from the bound ray tracing pipeline", @@ -95596,6 +97323,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/raytracing.html" }, + { + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/raytracing.html" + }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-03429", "text": "Any shader group handle referenced by this call must have been queried from the bound ray tracing pipeline", @@ -96194,6 +97936,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/raytracing.html" }, + { + "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/raytracing.html" + }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-None-03429", "text": "Any shader group handle referenced by this call must have been queried from the bound ray tracing pipeline", @@ -96658,6 +98415,11 @@ "text": "If videoCodecOperation is VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the pNext chain must include a VkVideoDecodeH265ProfileInfoKHR structure", "page": "chapters/videocoding.html" }, + { + "vuid": "VUID-VkVideoProfileInfoKHR-videoCodecOperation-10791", + "text": "If videoCodecOperation is VK_VIDEO_CODEC_OPERATION_DECODE_VP9_BIT_KHR, then the pNext chain must include a VkVideoDecodeVP9ProfileInfoKHR structure", + "page": "chapters/videocoding.html" + }, { "vuid": "VUID-VkVideoProfileInfoKHR-videoCodecOperation-09256", "text": "If videoCodecOperation is VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR, then the pNext chain must include a VkVideoDecodeAV1ProfileInfoKHR structure", @@ -96789,6 +98551,11 @@ "text": "If pVideoProfile->videoCodecOperation is VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the pNext chain of pCapabilities must include a VkVideoDecodeH265CapabilitiesKHR structure", "page": "chapters/videocoding.html" }, + { + "vuid": "VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pVideoProfile-10792", + "text": "If pVideoProfile->videoCodecOperation is VK_VIDEO_CODEC_OPERATION_DECODE_VP9_BIT_KHR, then the pNext chain of pCapabilities must include a VkVideoDecodeVP9CapabilitiesKHR structure", + "page": "chapters/videocoding.html" + }, { "vuid": "VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-pVideoProfile-09257", "text": "If pVideoProfile->videoCodecOperation is VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR, then the pNext chain of pCapabilities must include a VkVideoDecodeAV1CapabilitiesKHR structure", @@ -96840,7 +98607,7 @@ }, { "vuid": "VUID-VkVideoCapabilitiesKHR-pNext-pNext", - "text": "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 VkVideoDecodeAV1CapabilitiesKHR, VkVideoDecodeCapabilitiesKHR, VkVideoDecodeH264CapabilitiesKHR, VkVideoDecodeH265CapabilitiesKHR, VkVideoEncodeAV1CapabilitiesKHR, VkVideoEncodeAV1QuantizationMapCapabilitiesKHR, VkVideoEncodeCapabilitiesKHR, VkVideoEncodeH264CapabilitiesKHR, VkVideoEncodeH264QuantizationMapCapabilitiesKHR, VkVideoEncodeH265CapabilitiesKHR, VkVideoEncodeH265QuantizationMapCapabilitiesKHR, or VkVideoEncodeQuantizationMapCapabilitiesKHR", + "text": "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 VkVideoDecodeAV1CapabilitiesKHR, VkVideoDecodeCapabilitiesKHR, VkVideoDecodeH264CapabilitiesKHR, VkVideoDecodeH265CapabilitiesKHR, VkVideoDecodeVP9CapabilitiesKHR, VkVideoEncodeAV1CapabilitiesKHR, VkVideoEncodeAV1QuantizationMapCapabilitiesKHR, VkVideoEncodeCapabilitiesKHR, VkVideoEncodeH264CapabilitiesKHR, VkVideoEncodeH264QuantizationMapCapabilitiesKHR, VkVideoEncodeH265CapabilitiesKHR, VkVideoEncodeH265QuantizationMapCapabilitiesKHR, or VkVideoEncodeQuantizationMapCapabilitiesKHR", "page": "chapters/videocoding.html" }, { @@ -96948,6 +98715,11 @@ "vuid": "VUID-vkCreateVideoSessionKHR-pVideoSession-parameter", "text": "pVideoSession must be a valid pointer to a VkVideoSessionKHR handle", "page": "chapters/videocoding.html" + }, + { + "vuid": "VUID-vkCreateVideoSessionKHR-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/videocoding.html" } ] }, @@ -97053,6 +98825,11 @@ "text": "pStdHeaderVersion->specVersion must be less than or equal to VkVideoCapabilitiesKHR::stdHeaderVersion.specVersion, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified by pVideoProfile", "page": "chapters/videocoding.html" }, + { + "vuid": "VUID-VkVideoSessionCreateInfoKHR-pVideoProfile-10793", + "text": "If pVideoProfile->videoCodecOperation is VK_VIDEO_CODEC_OPERATION_DECODE_VP9_BIT_KHR, then the videoDecodeVP9 feature must be enabled", + "page": "chapters/videocoding.html" + }, { "vuid": "VUID-VkVideoSessionCreateInfoKHR-pVideoProfile-08251", "text": "If pVideoProfile->videoCodecOperation is VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR and the pNext chain of this structure includes a VkVideoEncodeH264SessionCreateInfoKHR structure, then its maxLevelIdc member must be less than or equal to VkVideoEncodeH264CapabilitiesKHR::maxLevelIdc, as returned by vkGetPhysicalDeviceVideoCapabilitiesKHR for the video profile specified in pVideoProfile", @@ -97306,6 +99083,11 @@ "vuid": "VUID-vkCreateVideoSessionParametersKHR-pVideoSessionParameters-parameter", "text": "pVideoSessionParameters must be a valid pointer to a VkVideoSessionParametersKHR handle", "page": "chapters/videocoding.html" + }, + { + "vuid": "VUID-vkCreateVideoSessionParametersKHR-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/videocoding.html" } ] }, @@ -97391,6 +99173,11 @@ "text": "If videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the number of elements of ppsAddList must be less than or equal to the maxStdPPSCount specified in the VkVideoDecodeH265SessionParametersCreateInfoKHR structure included in the pNext chain", "page": "chapters/videocoding.html" }, + { + "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-10794", + "text": "videoSession must not have been created with the codec operation VK_VIDEO_CODEC_OPERATION_DECODE_VP9_BIT_KHR", + "page": "chapters/videocoding.html" + }, { "vuid": "VUID-VkVideoSessionParametersCreateInfoKHR-videoSession-09258", "text": "If videoSession was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR, then videoSessionParametersTemplate must be VK_NULL_HANDLE", @@ -98333,23 +100120,23 @@ "page": "chapters/videocoding.html" }, { - "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07252", - "text": "If pDecodeInfo->pSetupReferenceSlot is NULL or pDecodeInfo->pSetupReferenceSlot->pPictureResource does not refer to the same image subresource as pDecodeInfo->dstPictureResource, then the image subresource referred to by pDecodeInfo->dstPictureResource must be in the VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR layout at the time the video decode operation is executed on the device", + "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-10801", + "text": "If pDecodeInfo->pSetupReferenceSlot is NULL or pDecodeInfo->pSetupReferenceSlot->pPictureResource does not refer to the same image subresource as pDecodeInfo->dstPictureResource, then the image subresource referred to by pDecodeInfo->dstPictureResource must be in the VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR layout at the time the video decode operation is executed on the device , unless the unifiedImageLayoutsVideo feature is VK_TRUE, in which case it may be in the VK_IMAGE_LAYOUT_GENERAL layout", "page": "chapters/videocoding.html" }, { - "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07253", - "text": "If pDecodeInfo->pSetupReferenceSlot is not NULL and pDecodeInfo->pSetupReferenceSlot->pPictureResource refers to the same image subresource as pDecodeInfo->dstPictureResource, then the image subresource referred to by pDecodeInfo->dstPictureResource must be in the VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR layout at the time the video decode operation is executed on the device", + "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-10802", + "text": "If pDecodeInfo->pSetupReferenceSlot is not NULL and pDecodeInfo->pSetupReferenceSlot->pPictureResource refers to the same image subresource as pDecodeInfo->dstPictureResource, then the image subresource referred to by pDecodeInfo->dstPictureResource must be in the VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR layout at the time the video decode operation is executed on the device , unless the unifiedImageLayoutsVideo feature is VK_TRUE, in which case it may be in the VK_IMAGE_LAYOUT_GENERAL layout", "page": "chapters/videocoding.html" }, { - "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07254", - "text": "If pDecodeInfo->pSetupReferenceSlot is not NULL, then the image subresource referred to by pDecodeInfo->pSetupReferenceSlot->pPictureResource must be in the VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR layout at the time the video decode operation is executed on the device", + "vuid": "VUID-vkCmdDecodeVideoKHR-pDecodeInfo-10803", + "text": "If pDecodeInfo->pSetupReferenceSlot is not NULL, then the image subresource referred to by pDecodeInfo->pSetupReferenceSlot->pPictureResource must be in the VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR layout at the time the video decode operation is executed on the device , unless the unifiedImageLayoutsVideo feature is VK_TRUE, in which case it may be in the VK_IMAGE_LAYOUT_GENERAL layout", "page": "chapters/videocoding.html" }, { - "vuid": "VUID-vkCmdDecodeVideoKHR-pPictureResource-07255", - "text": "The image subresource referred to by the pPictureResource member of each element of pDecodeInfo->pReferenceSlots must be in the VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR layout at the time the video decode operation is executed on the device", + "vuid": "VUID-vkCmdDecodeVideoKHR-pPictureResource-10804", + "text": "The image subresource referred to by the pPictureResource member of each element of pDecodeInfo->pReferenceSlots must be in the VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR layout at the time the video decode operation is executed on the device , unless the unifiedImageLayoutsVideo feature is VK_TRUE, in which case it may be in the VK_IMAGE_LAYOUT_GENERAL layout", "page": "chapters/videocoding.html" }, { @@ -98497,6 +100284,36 @@ "text": "If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR, then the pNext chain of each element of pDecodeInfo->pReferenceSlots must include a VkVideoDecodeH265DpbSlotInfoKHR structure", "page": "chapters/videocoding.html" }, + { + "vuid": "VUID-vkCmdDecodeVideoKHR-pNext-10805", + "text": "If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_VP9_BIT_KHR, then the pNext chain of pDecodeInfo must include a VkVideoDecodeVP9PictureInfoKHR structure", + "page": "chapters/videocoding.html" + }, + { + "vuid": "VUID-vkCmdDecodeVideoKHR-uncompressedHeaderOffset-10806", + "text": "If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_VP9_BIT_KHR, then the uncompressedHeaderOffset member of the VkVideoDecodeVP9PictureInfoKHR structure included in the pNext chain of pDecodeInfo must be less than pDecodeInfo->srcBufferRange", + "page": "chapters/videocoding.html" + }, + { + "vuid": "VUID-vkCmdDecodeVideoKHR-compressedHeaderOffset-10807", + "text": "If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_VP9_BIT_KHR, then the compressedHeaderOffset member of the VkVideoDecodeVP9PictureInfoKHR structure included in the pNext chain of pDecodeInfo must be less than pDecodeInfo->srcBufferRange", + "page": "chapters/videocoding.html" + }, + { + "vuid": "VUID-vkCmdDecodeVideoKHR-tilesOffset-10808", + "text": "If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_VP9_BIT_KHR, then the tilesOffset member of the VkVideoDecodeVP9PictureInfoKHR structure included in the pNext chain of pDecodeInfo must be less than pDecodeInfo->srcBufferRange", + "page": "chapters/videocoding.html" + }, + { + "vuid": "VUID-vkCmdDecodeVideoKHR-referenceNameSlotIndices-10809", + "text": "If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_VP9_BIT_KHR, then each element of the referenceNameSlotIndices array member of the VkVideoDecodeVP9PictureInfoKHR structure included in the pNext chain of pDecodeInfo must either be negative or must equal the slotIndex member of one of the elements of pDecodeInfo->pReferenceSlots", + "page": "chapters/videocoding.html" + }, + { + "vuid": "VUID-vkCmdDecodeVideoKHR-slotIndex-10810", + "text": "If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_VP9_BIT_KHR, then the slotIndex member of each element of pDecodeInfo->pReferenceSlots must equal one of the elements of the referenceNameSlotIndices array member of the VkVideoDecodeVP9PictureInfoKHR structure included in the pNext chain of pDecodeInfo", + "page": "chapters/videocoding.html" + }, { "vuid": "VUID-vkCmdDecodeVideoKHR-filmGrainSupport-09248", "text": "If the bound video session was created with the video codec operation VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR and VkVideoDecodeAV1ProfileInfoKHR::filmGrainSupport set to VK_FALSE, then film grain must not be enabled for the decoded picture", @@ -98633,7 +100450,7 @@ }, { "vuid": "VUID-VkVideoDecodeInfoKHR-pNext-pNext", - "text": "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 VkVideoDecodeAV1InlineSessionParametersInfoKHR, VkVideoDecodeAV1PictureInfoKHR, VkVideoDecodeH264InlineSessionParametersInfoKHR, VkVideoDecodeH264PictureInfoKHR, VkVideoDecodeH265InlineSessionParametersInfoKHR, VkVideoDecodeH265PictureInfoKHR, or VkVideoInlineQueryInfoKHR", + "text": "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 VkVideoDecodeAV1InlineSessionParametersInfoKHR, VkVideoDecodeAV1PictureInfoKHR, VkVideoDecodeH264InlineSessionParametersInfoKHR, VkVideoDecodeH264PictureInfoKHR, VkVideoDecodeH265InlineSessionParametersInfoKHR, VkVideoDecodeH265PictureInfoKHR, VkVideoDecodeVP9PictureInfoKHR, or VkVideoInlineQueryInfoKHR", "page": "chapters/videocoding.html" }, { @@ -98924,6 +100741,38 @@ } ] }, + "VkVideoDecodeVP9ProfileInfoKHR": { + "core": [ + { + "vuid": "VUID-VkVideoDecodeVP9ProfileInfoKHR-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_PROFILE_INFO_KHR", + "page": "chapters/videocoding.html" + } + ] + }, + "VkVideoDecodeVP9CapabilitiesKHR": { + "core": [ + { + "vuid": "VUID-VkVideoDecodeVP9CapabilitiesKHR-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_CAPABILITIES_KHR", + "page": "chapters/videocoding.html" + } + ] + }, + "VkVideoDecodeVP9PictureInfoKHR": { + "core": [ + { + "vuid": "VUID-VkVideoDecodeVP9PictureInfoKHR-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_PICTURE_INFO_KHR", + "page": "chapters/videocoding.html" + }, + { + "vuid": "VUID-VkVideoDecodeVP9PictureInfoKHR-pStdPictureInfo-parameter", + "text": "pStdPictureInfo must be a valid pointer to a valid StdVideoDecodeVP9PictureInfo value", + "page": "chapters/videocoding.html" + } + ] + }, "VkVideoDecodeAV1ProfileInfoKHR": { "core": [ { @@ -99388,18 +101237,18 @@ "page": "chapters/videocoding.html" }, { - "vuid": "VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08222", - "text": "The image subresource referred to by pEncodeInfo->srcPictureResource must be in the VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR layout at the time the video encode operation is executed on the device", + "vuid": "VUID-vkCmdEncodeVideoKHR-pEncodeInfo-10811", + "text": "The image subresource referred to by pEncodeInfo->srcPictureResource must be in the VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR layout at the time the video encode operation is executed on the device , unless the unifiedImageLayoutsVideo feature is VK_TRUE, in which case it may be in the VK_IMAGE_LAYOUT_GENERAL layout", "page": "chapters/videocoding.html" }, { - "vuid": "VUID-vkCmdEncodeVideoKHR-pEncodeInfo-08223", - "text": "If pEncodeInfo->pSetupReferenceSlot is not NULL, then the image subresource referred to by pEncodeInfo->pSetupReferenceSlot->pPictureResource must be in the VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR layout at the time the video encode operation is executed on the device", + "vuid": "VUID-vkCmdEncodeVideoKHR-pEncodeInfo-10812", + "text": "If pEncodeInfo->pSetupReferenceSlot is not NULL, then the image subresource referred to by pEncodeInfo->pSetupReferenceSlot->pPictureResource must be in the VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR layout at the time the video encode operation is executed on the device , unless the unifiedImageLayoutsVideo feature is VK_TRUE, in which case it may be in the VK_IMAGE_LAYOUT_GENERAL layout", "page": "chapters/videocoding.html" }, { - "vuid": "VUID-vkCmdEncodeVideoKHR-pPictureResource-08224", - "text": "The image subresource referred to by the pPictureResource member of each element of pEncodeInfo->pReferenceSlots must be in the VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR layout at the time the video encode operation is executed on the device", + "vuid": "VUID-vkCmdEncodeVideoKHR-pPictureResource-10813", + "text": "The image subresource referred to by the pPictureResource member of each element of pEncodeInfo->pReferenceSlots must be in the VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR layout at the time the video encode operation is executed on the device , unless the unifiedImageLayoutsVideo feature is VK_TRUE, in which case it may be in the VK_IMAGE_LAYOUT_GENERAL layout", "page": "chapters/videocoding.html" }, { @@ -99444,7 +101293,7 @@ }, { "vuid": "VUID-vkCmdEncodeVideoKHR-pNext-10314", - "text": "If an instance of the VkVideoEncodeQuantizationMapInfoKHR structure is included in the pNext chain of pEncodeInfo and its quantizationMap member is not VK_NULL_HANDLE, then the image subresource range referenced by quantizationMap must be in the VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR layout at the time the video encode operation is executed on the device", + "text": "If an instance of the VkVideoEncodeQuantizationMapInfoKHR structure is included in the pNext chain of pEncodeInfo and its quantizationMap member is not VK_NULL_HANDLE, then the image subresource range referenced by quantizationMap must be in the VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR layout at the time the video encode operation is executed on the device , unless the unifiedImageLayoutsVideo feature is VK_TRUE, in which case it may be in the VK_IMAGE_LAYOUT_GENERAL layout", "page": "chapters/videocoding.html" }, { @@ -101008,6 +102857,11 @@ "vuid": "VUID-vkCreateOpticalFlowSessionNV-pSession-parameter", "text": "pSession must be a valid pointer to a VkOpticalFlowSessionNV handle", "page": "chapters/VK_NV_optical_flow/optical_flow.html" + }, + { + "vuid": "VUID-vkCreateOpticalFlowSessionNV-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/VK_NV_optical_flow/optical_flow.html" } ] }, @@ -102080,6 +103934,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/executiongraphs.html" }, + { + "vuid": "VUID-vkCmdDispatchGraphAMDX-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/executiongraphs.html" + }, + { + "vuid": "VUID-vkCmdDispatchGraphAMDX-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/executiongraphs.html" + }, + { + "vuid": "VUID-vkCmdDispatchGraphAMDX-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/executiongraphs.html" + }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-commandBuffer-09181", "text": "commandBuffer must not be a protected command buffer", @@ -102529,6 +104398,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/executiongraphs.html" }, + { + "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/executiongraphs.html" + }, + { + "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/executiongraphs.html" + }, + { + "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/executiongraphs.html" + }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-09181", "text": "commandBuffer must not be a protected command buffer", @@ -102998,6 +104882,21 @@ "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", "page": "chapters/executiongraphs.html" }, + { + "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/executiongraphs.html" + }, + { + "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/executiongraphs.html" + }, + { + "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/executiongraphs.html" + }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-09181", "text": "commandBuffer must not be a protected command buffer", @@ -103149,22 +105048,27 @@ { "vuid": "VUID-vkCreateExternalComputeQueueNV-device-parameter", "text": "device must be a valid VkDevice handle", - "page": "vkspec" + "page": "chapters/VK_NV_external_compute_queue/VK_NV_external_compute_queue.html" }, { "vuid": "VUID-vkCreateExternalComputeQueueNV-pCreateInfo-parameter", "text": "pCreateInfo must be a valid pointer to a valid VkExternalComputeQueueCreateInfoNV structure", - "page": "vkspec" + "page": "chapters/VK_NV_external_compute_queue/VK_NV_external_compute_queue.html" }, { "vuid": "VUID-vkCreateExternalComputeQueueNV-pAllocator-parameter", "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", - "page": "vkspec" + "page": "chapters/VK_NV_external_compute_queue/VK_NV_external_compute_queue.html" }, { "vuid": "VUID-vkCreateExternalComputeQueueNV-pExternalQueue-parameter", "text": "pExternalQueue must be a valid pointer to a VkExternalComputeQueueNV handle", - "page": "vkspec" + "page": "chapters/VK_NV_external_compute_queue/VK_NV_external_compute_queue.html" + }, + { + "vuid": "VUID-vkCreateExternalComputeQueueNV-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "chapters/VK_NV_external_compute_queue/VK_NV_external_compute_queue.html" } ] }, @@ -103173,22 +105077,22 @@ { "vuid": "VUID-vkDestroyExternalComputeQueueNV-device-parameter", "text": "device must be a valid VkDevice handle", - "page": "vkspec" + "page": "chapters/VK_NV_external_compute_queue/VK_NV_external_compute_queue.html" }, { "vuid": "VUID-vkDestroyExternalComputeQueueNV-externalQueue-parameter", "text": "externalQueue must be a valid VkExternalComputeQueueNV handle", - "page": "vkspec" + "page": "chapters/VK_NV_external_compute_queue/VK_NV_external_compute_queue.html" }, { "vuid": "VUID-vkDestroyExternalComputeQueueNV-pAllocator-parameter", "text": "If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure", - "page": "vkspec" + "page": "chapters/VK_NV_external_compute_queue/VK_NV_external_compute_queue.html" }, { "vuid": "VUID-vkDestroyExternalComputeQueueNV-externalQueue-parent", "text": "externalQueue must have been created, allocated, or retrieved from device", - "page": "vkspec" + "page": "chapters/VK_NV_external_compute_queue/VK_NV_external_compute_queue.html" } ] }, @@ -103197,22 +105101,22 @@ { "vuid": "VUID-vkGetExternalComputeQueueDataNV-pData-08134", "text": "pData must be at least the size specified by the externalDataSize field in the VkPhysicalDeviceExternalComputeQueuePropertiesNV structure.", - "page": "vkspec" + "page": "chapters/VK_NV_external_compute_queue/VK_NV_external_compute_queue.html" }, { "vuid": "VUID-vkGetExternalComputeQueueDataNV-externalQueue-parameter", "text": "externalQueue must be a valid VkExternalComputeQueueNV handle", - "page": "vkspec" + "page": "chapters/VK_NV_external_compute_queue/VK_NV_external_compute_queue.html" }, { "vuid": "VUID-vkGetExternalComputeQueueDataNV-params-parameter", "text": "params must be a valid pointer to a VkExternalComputeQueueDataParamsNV structure", - "page": "vkspec" + "page": "chapters/VK_NV_external_compute_queue/VK_NV_external_compute_queue.html" }, { "vuid": "VUID-vkGetExternalComputeQueueDataNV-pData-parameter", "text": "pData must be a pointer value", - "page": "vkspec" + "page": "chapters/VK_NV_external_compute_queue/VK_NV_external_compute_queue.html" } ] }, @@ -103221,7 +105125,7 @@ { "vuid": "VUID-VkExternalComputeQueueDeviceCreateInfoNV-sType-sType", "text": "sType must be VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_DEVICE_CREATE_INFO_NV", - "page": "vkspec" + "page": "chapters/VK_NV_external_compute_queue/VK_NV_external_compute_queue.html" } ] }, @@ -103230,17 +105134,17 @@ { "vuid": "VUID-VkExternalComputeQueueCreateInfoNV-sType-sType", "text": "sType must be VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_CREATE_INFO_NV", - "page": "vkspec" + "page": "chapters/VK_NV_external_compute_queue/VK_NV_external_compute_queue.html" }, { "vuid": "VUID-VkExternalComputeQueueCreateInfoNV-pNext-pNext", "text": "pNext must be NULL", - "page": "vkspec" + "page": "chapters/VK_NV_external_compute_queue/VK_NV_external_compute_queue.html" }, { "vuid": "VUID-VkExternalComputeQueueCreateInfoNV-preferredQueue-parameter", "text": "preferredQueue must be a valid VkQueue handle", - "page": "vkspec" + "page": "chapters/VK_NV_external_compute_queue/VK_NV_external_compute_queue.html" } ] }, @@ -103249,12 +105153,12 @@ { "vuid": "VUID-VkExternalComputeQueueDataParamsNV-sType-sType", "text": "sType must be VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_DATA_PARAMS_NV", - "page": "vkspec" + "page": "chapters/VK_NV_external_compute_queue/VK_NV_external_compute_queue.html" }, { "vuid": "VUID-VkExternalComputeQueueDataParamsNV-pNext-pNext", "text": "pNext must be NULL", - "page": "vkspec" + "page": "chapters/VK_NV_external_compute_queue/VK_NV_external_compute_queue.html" } ] }, @@ -103263,7 +105167,7 @@ { "vuid": "VUID-VkPhysicalDeviceExternalComputeQueuePropertiesNV-sType-sType", "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_COMPUTE_QUEUE_PROPERTIES_NV", - "page": "vkspec" + "page": "chapters/VK_NV_external_compute_queue/VK_NV_external_compute_queue.html" } ] }, @@ -104139,6 +106043,15 @@ } ] }, + "VkPhysicalDeviceVideoDecodeVP9FeaturesKHR": { + "core": [ + { + "vuid": "VUID-VkPhysicalDeviceVideoDecodeVP9FeaturesKHR-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_DECODE_VP9_FEATURES_KHR", + "page": "chapters/features.html" + } + ] + }, "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT": { "core": [ { @@ -104504,6 +106417,15 @@ } ] }, + "VkPhysicalDeviceDescriptorBufferTensorFeaturesARM": { + "core": [ + { + "vuid": "VUID-VkPhysicalDeviceDescriptorBufferTensorFeaturesARM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_FEATURES_ARM", + "page": "chapters/features.html" + } + ] + }, "VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT": { "core": [ { @@ -104603,6 +106525,15 @@ } ] }, + "VkPhysicalDevicePresentId2FeaturesKHR": { + "core": [ + { + "vuid": "VUID-VkPhysicalDevicePresentId2FeaturesKHR-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR", + "page": "chapters/features.html" + } + ] + }, "VkPhysicalDevicePresentWaitFeaturesKHR": { "core": [ { @@ -104612,6 +106543,24 @@ } ] }, + "VkPhysicalDevicePresentWait2FeaturesKHR": { + "core": [ + { + "vuid": "VUID-VkPhysicalDevicePresentWait2FeaturesKHR-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR", + "page": "chapters/features.html" + } + ] + }, + "VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR": { + "core": [ + { + "vuid": "VUID-VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFIED_IMAGE_LAYOUTS_FEATURES_KHR", + "page": "chapters/features.html" + } + ] + }, "VkPhysicalDeviceHostImageCopyFeatures": { "core": [ { @@ -104684,6 +106633,15 @@ } ] }, + "VkPhysicalDeviceMaintenance9FeaturesKHR": { + "core": [ + { + "vuid": "VUID-VkPhysicalDeviceMaintenance9FeaturesKHR-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_FEATURES_KHR", + "page": "chapters/features.html" + } + ] + }, "VkPhysicalDeviceDynamicRenderingFeatures": { "core": [ { @@ -104981,6 +106939,15 @@ } ] }, + "VkPhysicalDeviceTensorFeaturesARM": { + "core": [ + { + "vuid": "VUID-VkPhysicalDeviceTensorFeaturesARM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_FEATURES_ARM", + "page": "chapters/features.html" + } + ] + }, "VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM": { "core": [ { @@ -105359,6 +107326,15 @@ } ] }, + "VkPhysicalDeviceShaderFloat8FeaturesEXT": { + "core": [ + { + "vuid": "VUID-VkPhysicalDeviceShaderFloat8FeaturesEXT-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT8_FEATURES_EXT", + "page": "chapters/features.html" + } + ] + }, "VkPhysicalDevicePushDescriptorProperties": { "core": [ { @@ -105595,6 +107571,15 @@ } ] }, + "VkPhysicalDeviceMaintenance9PropertiesKHR": { + "core": [ + { + "vuid": "VUID-VkPhysicalDeviceMaintenance9PropertiesKHR-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_PROPERTIES_KHR", + "page": "chapters/limits.html" + } + ] + }, "VkPhysicalDeviceMeshShaderPropertiesNV": { "core": [ { @@ -105955,6 +107940,15 @@ } ] }, + "VkPhysicalDeviceDescriptorBufferTensorPropertiesARM": { + "core": [ + { + "vuid": "VUID-VkPhysicalDeviceDescriptorBufferTensorPropertiesARM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_PROPERTIES_ARM", + "page": "chapters/limits.html" + } + ] + }, "VkPhysicalDeviceHostImageCopyProperties": { "core": [ { @@ -106208,6 +108202,15 @@ } ] }, + "VkPhysicalDeviceTensorPropertiesARM": { + "core": [ + { + "vuid": "VUID-VkPhysicalDeviceTensorPropertiesARM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_PROPERTIES_ARM", + "page": "chapters/limits.html" + } + ] + }, "vkGetPhysicalDeviceMultisamplePropertiesEXT": { "core": [ { @@ -106288,7 +108291,7 @@ }, { "vuid": "VUID-VkFormatProperties2-pNext-pNext", - "text": "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 VkDrmFormatModifierPropertiesList2EXT, VkDrmFormatModifierPropertiesListEXT, VkFormatProperties3, or VkSubpassResolvePerformanceQueryEXT", + "text": "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 VkDrmFormatModifierPropertiesList2EXT, VkDrmFormatModifierPropertiesListEXT, VkFormatProperties3, VkSubpassResolvePerformanceQueryEXT, or VkTensorFormatPropertiesARM", "page": "chapters/formats.html" }, { @@ -106325,6 +108328,15 @@ } ] }, + "VkTensorFormatPropertiesARM": { + "core": [ + { + "vuid": "VUID-VkTensorFormatPropertiesARM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_TENSOR_FORMAT_PROPERTIES_ARM", + "page": "chapters/formats.html" + } + ] + }, "VkSubpassResolvePerformanceQueryEXT": { "core": [ { @@ -106732,6 +108744,73 @@ } ] }, + "vkGetPhysicalDeviceExternalTensorPropertiesARM": { + "core": [ + { + "vuid": "VUID-vkGetPhysicalDeviceExternalTensorPropertiesARM-physicalDevice-parameter", + "text": "physicalDevice must be a valid VkPhysicalDevice handle", + "page": "chapters/capabilities.html" + }, + { + "vuid": "VUID-vkGetPhysicalDeviceExternalTensorPropertiesARM-pExternalTensorInfo-parameter", + "text": "pExternalTensorInfo must be a valid pointer to a valid VkPhysicalDeviceExternalTensorInfoARM structure", + "page": "chapters/capabilities.html" + }, + { + "vuid": "VUID-vkGetPhysicalDeviceExternalTensorPropertiesARM-pExternalTensorProperties-parameter", + "text": "pExternalTensorProperties must be a valid pointer to a VkExternalTensorPropertiesARM structure", + "page": "chapters/capabilities.html" + } + ] + }, + "VkPhysicalDeviceExternalTensorInfoARM": { + "core": [ + { + "vuid": "VUID-VkPhysicalDeviceExternalTensorInfoARM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_TENSOR_INFO_ARM", + "page": "chapters/capabilities.html" + }, + { + "vuid": "VUID-VkPhysicalDeviceExternalTensorInfoARM-pNext-pNext", + "text": "pNext must be NULL", + "page": "chapters/capabilities.html" + }, + { + "vuid": "VUID-VkPhysicalDeviceExternalTensorInfoARM-flags-parameter", + "text": "flags must be a valid combination of VkTensorCreateFlagBitsARM values", + "page": "chapters/capabilities.html" + }, + { + "vuid": "VUID-VkPhysicalDeviceExternalTensorInfoARM-pDescription-parameter", + "text": "pDescription must be a valid pointer to a valid VkTensorDescriptionARM structure", + "page": "chapters/capabilities.html" + }, + { + "vuid": "VUID-VkPhysicalDeviceExternalTensorInfoARM-handleType-parameter", + "text": "handleType must be a valid VkExternalMemoryHandleTypeFlagBits value", + "page": "chapters/capabilities.html" + } + ] + }, + "VkExternalTensorPropertiesARM": { + "core": [ + { + "vuid": "VUID-VkExternalTensorPropertiesARM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_EXTERNAL_TENSOR_PROPERTIES_ARM", + "page": "chapters/capabilities.html" + }, + { + "vuid": "VUID-VkExternalTensorPropertiesARM-pNext-pNext", + "text": "pNext must be NULL", + "page": "chapters/capabilities.html" + }, + { + "vuid": "VUID-VkExternalTensorPropertiesARM-externalMemoryProperties-parameter", + "text": "externalMemoryProperties must be a valid VkExternalMemoryProperties structure", + "page": "chapters/capabilities.html" + } + ] + }, "vkGetPhysicalDeviceExternalSemaphoreProperties": { "core": [ { @@ -107972,6 +110051,25 @@ } ] }, + "VkFrameBoundaryTensorsARM": { + "core": [ + { + "vuid": "VUID-VkFrameBoundaryTensorsARM-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_FRAME_BOUNDARY_TENSORS_ARM", + "page": "chapters/debugging.html" + }, + { + "vuid": "VUID-VkFrameBoundaryTensorsARM-pTensors-parameter", + "text": "pTensors must be a valid pointer to an array of tensorCount valid VkTensorARM handles", + "page": "chapters/debugging.html" + }, + { + "vuid": "VUID-VkFrameBoundaryTensorsARM-tensorCount-arraylength", + "text": "tensorCount must be greater than 0", + "page": "chapters/debugging.html" + } + ] + }, "StandaloneSpirv": { "core": [ { @@ -108111,7 +110209,7 @@ }, { "vuid": "VUID-StandaloneSpirv-UniformConstant-04655", - "text": "Any variable in the UniformConstant Storage Class must be typed as either OpTypeImage, OpTypeSampler, OpTypeSampledImage, OpTypeAccelerationStructureKHR, or an array of one of these types", + "text": "Any variable in the UniformConstant Storage Class must be typed as either OpTypeImage, OpTypeSampler, OpTypeSampledImage, OpTypeAccelerationStructureKHR, OpTypeTensorARM or an array of one of these types", "page": "appendices/spirvenv.html" }, { @@ -108171,7 +110269,7 @@ }, { "vuid": "VUID-StandaloneSpirv-OpTypeImage-06924", - "text": "Objects of types OpTypeImage, OpTypeSampler, OpTypeSampledImage, OpTypeAccelerationStructureKHR, and arrays of these types must not be stored to or modified", + "text": "Objects of types OpTypeImage, OpTypeSampler, OpTypeSampledImage, OpTypeAccelerationStructureKHR, OpTypeTensorARM, and arrays of these types must not be stored to or modified", "page": "appendices/spirvenv.html" }, { @@ -108594,11 +110692,6 @@ "text": "The Result Type operand of any OpImageRead or OpImageSparseRead instruction must be a vector of four components", "page": "appendices/spirvenv.html" }, - { - "vuid": "VUID-StandaloneSpirv-Base-04781", - "text": "The Base operand of any OpBitCount, OpBitReverse, OpBitFieldInsert, OpBitFieldSExtract, or OpBitFieldUExtract instruction must be a 32-bit integer scalar or a vector of 32-bit integers", - "page": "appendices/spirvenv.html" - }, { "vuid": "VUID-StandaloneSpirv-PushConstant-06675", "text": "Any variable in the PushConstant or StorageBuffer storage class must be decorated as Block", @@ -108793,6 +110886,11 @@ "vuid": "VUID-StandaloneSpirv-TileAttachmentQCOM-10697", "text": "An OpTypeImage variables in the TileAttachmentQCOM Storage Class must not be consumed by an OpImageQuery* instruction", "page": "appendices/spirvenv.html" + }, + { + "vuid": "VUID-StandaloneSpirv-OpTypeFloat-10823", + "text": "Variables with a type of OpTypeFloat and an encoding of Float8E4M3EXT or Float8E5M2EXT must not be declared with a Storage Class of Input or Output", + "page": "appendices/spirvenv.html" } ] }, @@ -109600,7 +111698,7 @@ }, { "vuid": "VUID-RuntimeSpirv-flags-08761", - "text": "For OpRayQueryGetIntersectionTriangleVertexPositionsKHR instructions, Acceleration Structure must have been built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR in flags", + "text": "For OpRayQueryGetIntersectionTriangleVertexPositionsKHR instructions, Acceleration Structure must have been built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_BIT_KHR in flags", "page": "appendices/spirvenv.html" }, { @@ -110182,6 +112280,36 @@ "vuid": "VUID-RuntimeSpirv-ConstOffset-10718", "text": "If a VkSampler object that enables sampler Y′CBCR conversion is statically used, it must not use the ConstOffset or Offset operands", "page": "appendices/spirvenv.html" + }, + { + "vuid": "VUID-RuntimeSpirv-shaderTensorSupportedStages-09901", + "text": "OpTypeTensorARM, OpTensorReadARM, OpTensorWriteARM, or OpTensorQuerySizeARM must not be used in shader stages not in shaderTensorSupportedStages", + "page": "appendices/spirvenv.html" + }, + { + "vuid": "VUID-RuntimeSpirv-OpTypeTensorARM-09902", + "text": "OpTypeTensorARM with a Shape must not be used in shader stages", + "page": "appendices/spirvenv.html" + }, + { + "vuid": "VUID-RuntimeSpirv-OpTypeTensorARM-09907", + "text": "OpTypeTensorARM without a Rank must not be used in shader stages", + "page": "appendices/spirvenv.html" + }, + { + "vuid": "VUID-RuntimeSpirv-maxTensorShaderAccessArrayLength-09903", + "text": "The length of an array returned by OpTensorReadARM or passed as the Object operand to OpTensorWriteARM must be less than or equal to maxTensorShaderAccessArrayLength", + "page": "appendices/spirvenv.html" + }, + { + "vuid": "VUID-RuntimeSpirv-maxTensorShaderAccessSize-09904", + "text": "The total size of the data (number of tensor elements × size of an element) read or written by one OpTensorReadARM, or OpTensorWriteARM instruction, respectively, must be less than or equal to maxTensorShaderAccessSize", + "page": "appendices/spirvenv.html" + }, + { + "vuid": "VUID-RuntimeSpirv-None-10824", + "text": "If the maintenance9 feature is not enabled, the Base operand of any OpBitCount, OpBitReverse, OpBitFieldInsert, OpBitFieldSExtract, or OpBitFieldUExtract instruction must be a 32-bit integer scalar or a vector of 32-bit integers", + "page": "appendices/spirvenv.html" } ] }, @@ -110206,6 +112334,11 @@ "vuid": "VUID-vkCreateCuFunctionNVX-pFunction-parameter", "text": "pFunction must be a valid pointer to a VkCuFunctionNVX handle", "page": "appendices/extensions.html" + }, + { + "vuid": "VUID-vkCreateCuFunctionNVX-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "appendices/extensions.html" } ] }, @@ -110278,6 +112411,11 @@ "vuid": "VUID-vkCreateCuModuleNVX-pModule-parameter", "text": "pModule must be a valid pointer to a VkCuModuleNVX handle", "page": "appendices/extensions.html" + }, + { + "vuid": "VUID-vkCreateCuModuleNVX-device-queuecount", + "text": "The device must have been created with at least 1 queue", + "page": "appendices/extensions.html" } ] }, diff --git a/registry/video.xml b/registry/video.xml index 6ddc75e..012bfd0 100644 --- a/registry/video.xml +++ b/registry/video.xml @@ -29,6 +29,7 @@ The current public version of video.xml is maintained in the default branch #include "vulkan_video_codecs_common.h" #include "vulkan_video_codec_h264std.h" #include "vulkan_video_codec_h265std.h" + #include "vulkan_video_codec_vp9std.h" #include "vulkan_video_codec_av1std.h" @@ -51,6 +52,10 @@ The current public version of video.xml is maintained in the default branch #define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_1_0_0 VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + + +#define VK_STD_VULKAN_VIDEO_CODEC_VP9_DECODE_API_VERSION_1_0_0 VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + #define VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_API_VERSION_1_0_0 VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) @@ -843,6 +848,94 @@ The current public version of video.xml is maintained in the default branch uint8_t TemporalIdTemporal ID, as defined in 7.4.2.2 + + + + + + + + + + Syntax defined in section 6.2.2, semantics defined in section 7.2.2 + uint32_t color_range : 1 + uint32_t reserved : 31 + + + Syntax defined in section 6.2.2, semantics defined in section 7.2.2 + StdVideoVP9ColorConfigFlags flags + uint8_t BitDepth + uint8_t subsampling_x + uint8_t subsampling_y + uint8_t reserved1Reserved for future use and must be initialized with 0. + StdVideoVP9ColorSpace color_space + + + Syntax defined in section 6.2.8, semantics defined in section 7.2.8 + uint32_t loop_filter_delta_enabled : 1 + uint32_t loop_filter_delta_update : 1 + uint32_t reserved : 30 + + + Syntax defined in section 6.2.8, semantics defined in section 7.2.8 + StdVideoVP9LoopFilterFlags flags + uint8_t loop_filter_level + uint8_t loop_filter_sharpness + uint8_t update_ref_delta + int8_t loop_filter_ref_deltas[STD_VIDEO_VP9_MAX_REF_FRAMES] + uint8_t update_mode_delta + int8_t loop_filter_mode_deltas[STD_VIDEO_VP9_LOOP_FILTER_ADJUSTMENTS] + + + Syntax defined in section 6.2.11, semantics defined in section 7.2.10 + uint32_t segmentation_update_map : 1 + uint32_t segmentation_temporal_update : 1 + uint32_t segmentation_update_data : 1 + uint32_t segmentation_abs_or_delta_update : 1 + uint32_t reserved : 28 + + + Syntax defined in section 6.2.11, semantics defined in section 7.2.10 + StdVideoVP9SegmentationFlags flags + uint8_t segmentation_tree_probs[STD_VIDEO_VP9_MAX_SEGMENTATION_TREE_PROBS] + uint8_t segmentation_pred_prob[STD_VIDEO_VP9_MAX_SEGMENTATION_PRED_PROB] + uint8_t FeatureEnabled[STD_VIDEO_VP9_MAX_SEGMENTS]Each element contains 4 (SEG_LVL_MAX) bits, one bit for each feature within the segment + int16_t FeatureData[STD_VIDEO_VP9_MAX_SEGMENTS][STD_VIDEO_VP9_SEG_LVL_MAX] + + + Syntax defined in section 6.2, semantics defined in section 7.2 + uint32_t error_resilient_mode : 1 + uint32_t intra_only : 1 + uint32_t allow_high_precision_mv : 1 + uint32_t refresh_frame_context : 1 + uint32_t frame_parallel_decoding_mode : 1 + uint32_t segmentation_enabled : 1 + uint32_t show_frame : 1 + uint32_t UsePrevFrameMvs : 1 + uint32_t reserved : 24 + + + Syntax defined in section 6.2, semantics defined in section 7.2 + StdVideoDecodeVP9PictureInfoFlags flags + StdVideoVP9Profile profile + StdVideoVP9FrameType frame_type + uint8_t frame_context_idx + uint8_t reset_frame_context + uint8_t refresh_frame_flags + uint8_t ref_frame_sign_bias_mask + StdVideoVP9InterpolationFilter interpolation_filter + uint8_t base_q_idx + int8_t delta_q_y_dc + int8_t delta_q_uv_dc + int8_t delta_q_uv_ac + uint8_t tile_cols_log2 + uint8_t tile_rows_log2 + uint16_t reserved1[3]Reserved for future use and must be initialized with 0. + const StdVideoVP9ColorConfig* pColorConfig + const StdVideoVP9LoopFilter* pLoopFilter + const StdVideoVP9Segmentation* pSegmentation + + @@ -1424,7 +1517,64 @@ The current public version of video.xml is maintained in the default branch - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1736,6 +1886,45 @@ The current public version of video.xml is maintained in the default branch + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/registry/vk.xml b/registry/vk.xml index 198e6bd..0351aef 100755 --- a/registry/vk.xml +++ b/registry/vk.xml @@ -179,7 +179,7 @@ branch of the member gitlab server. #define VKSC_API_VERSION_1_0 VK_MAKE_API_VERSION(VKSC_API_VARIANT, 1, 0, 0)// Patch version should always be set to 0 // Version of this file -#define VK_HEADER_VERSION 316 +#define VK_HEADER_VERSION 317 // Complete version of this file #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 4, VK_HEADER_VERSION) // Version of this file @@ -296,7 +296,7 @@ typedef void* MTLSharedEvent_id; Bitmask types typedef VkFlags VkFramebufferCreateFlags; - typedef VkFlags VkQueryPoolCreateFlags; + typedef VkFlags VkQueryPoolCreateFlags; typedef VkFlags VkRenderPassCreateFlags; typedef VkFlags VkSamplerCreateFlags; typedef VkFlags VkPipelineLayoutCreateFlags; @@ -404,6 +404,9 @@ typedef void* MTLSharedEvent_id; typedef VkFlags64 VkBufferUsageFlags2; + typedef VkFlags64 VkTensorCreateFlagsARM; + typedef VkFlags64 VkTensorUsageFlagsARM; + typedef VkFlags64 VkTensorViewCreateFlagsARM; WSI extensions typedef VkFlags VkCompositeAlphaFlagsKHR; @@ -596,6 +599,8 @@ typedef void* MTLSharedEvent_id; VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkOpticalFlowSessionNV) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkMicromapEXT) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderEXT) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkTensorARM) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkTensorViewARM) WSI extensions VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR) @@ -852,6 +857,10 @@ typedef void* MTLSharedEvent_id; + + + + WSI extensions @@ -993,6 +1002,9 @@ typedef void* MTLSharedEvent_id; VK_KHR_maintenance8 + VK_KHR_maintenance9 + + The PFN_vk*Function types are used by VkAllocationCallbacks below typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)( void* pUserData, @@ -1160,7 +1172,7 @@ typedef void* MTLSharedEvent_id; VkStructureType sType const void* pNext VkDeviceCreateFlags flags - uint32_t queueCreateInfoCount + uint32_t queueCreateInfoCount const VkDeviceQueueCreateInfo* pQueueCreateInfos uint32_t enabledLayerCount const char* const* ppEnabledLayerNamesOrdered list of layer names to be enabled @@ -3468,11 +3480,33 @@ typedef void* MTLSharedEvent_id; uint32_t swapchainCountCopy of VkPresentInfoKHR::swapchainCount const uint64_t* pPresentIdsPresent ID values for each swapchain + + VkStructureType sType + void* pNext + VkBool32 presentId2Present ID2 in VkPresentInfoKHR + + + VkStructureType sType + const void* pNext + uint32_t swapchainCountCopy of VkPresentInfoKHR::swapchainCount + const uint64_t* pPresentIdsPresent ID values for each swapchain + + + VkStructureType sType + const void* pNext + uint64_t presentId + uint64_t timeout + VkStructureType sType void* pNext VkBool32 presentWaitvkWaitForPresentKHR is supported + + VkStructureType sType + void* pNext + VkBool32 presentWait2vkWaitForPresent2KHR is supported + Display primary in chromaticity coordinates VkStructureType sType @@ -4073,6 +4107,22 @@ typedef void* MTLSharedEvent_id; void* pNext VkBool32 maintenance8 + + VkStructureType sType + void* pNext + VkBool32 maintenance9 + + + VkStructureType sType + void* pNext + VkBool32 image2DViewOf3DSparse + VkDefaultVertexAttributeValueKHR defaultVertexAttributeValue + + + VkStructureType sType + void* pNext + uint32_t optimalImageTransferToQueueFamilies + VkStructureType sType const void* pNext @@ -7114,6 +7164,12 @@ typedef void* MTLSharedEvent_id; VkBool32 synchronization2 + + VkStructureType sType + void* pNext + VkBool32 unifiedImageLayouts + VkBool32 unifiedImageLayoutsVideo + VkStructureType sType void* pNext @@ -7315,6 +7371,16 @@ typedef void* MTLSharedEvent_id; void* pNext VkBool32 multisampledRenderToSingleSampled + + VkStructureType sType + void* pNext + VkBool32 presentId2Supported + + + VkStructureType sType + void* pNext + VkBool32 presentWait2Supported + VkStructureType sType void* pNext @@ -7599,6 +7665,35 @@ typedef void* MTLSharedEvent_id; const void* pNext const StdVideoDecodeH265ReferenceInfo* pStdReferenceInfo + #include "vk_video/vulkan_video_codec_vp9std.h" + + + #include "vk_video/vulkan_video_codec_vp9std_decode.h" + + + VkStructureType sType + void* pNext + VkBool32 videoDecodeVP9 + + + VkStructureType sType + const void* pNext + StdVideoVP9Profile stdProfile + + + VkStructureType sType + void* pNext + StdVideoVP9Level maxLevel + + + VkStructureType sType + const void* pNext + const StdVideoDecodeVP9PictureInfo* pStdPictureInfo + int32_t referenceNameSlotIndices[VK_MAX_VIDEO_VP9_REFERENCES_PER_FRAME_KHR] + uint32_t uncompressedHeaderOffset + uint32_t compressedHeaderOffset + uint32_t tilesOffset + #include "vk_video/vulkan_video_codec_av1std.h" @@ -8359,7 +8454,7 @@ typedef void* MTLSharedEvent_id; VkAccelerationStructureKHR accelerationStructure VkAccelerationStructureNV accelerationStructureNV - + VkStructureType sType const void* pNext const void* opaqueCaptureDescriptorData @@ -9214,6 +9309,11 @@ typedef void* MTLSharedEvent_id; VkBool32 attachmentFeedbackLoopLayout + + VkStructureType sType + const void* pNext + VkBool32 feedbackLoopEnable + VkStructureType sType void* pNext @@ -10296,6 +10396,182 @@ typedef void* MTLSharedEvent_id; void* pNext VkBool32 formatPack + + VkStructureType sType + const void* pNext + VkTensorTilingARM tiling + VkFormat format + uint32_t dimensionCount + const int64_t* pDimensions + const int64_t* pStrides + VkTensorUsageFlagsARM usage + + + VkStructureType sType + const void* pNext + VkTensorCreateFlagsARM flags + const VkTensorDescriptionARM* pDescription + VkSharingMode sharingMode + uint32_t queueFamilyIndexCount + const uint32_t* pQueueFamilyIndices + + + VkStructureType sType + const void* pNext + VkTensorViewCreateFlagsARM flags + VkTensorARM tensor + VkFormat format + + + VkStructureType sType + const void* pNext + VkTensorARM tensor + + + VkStructureType sType + const void* pNext + VkTensorARM tensor + VkDeviceMemory memory + VkDeviceSize memoryOffset + + + VkStructureType sType + const void* pNext + uint32_t tensorViewCount + const VkTensorViewARM* pTensorViews + + + VkStructureType sType + const void* pNext + VkFormatFeatureFlags2 optimalTilingTensorFeatures + VkFormatFeatureFlags2 linearTilingTensorFeatures + + + VkStructureType sType + void* pNext + uint32_t maxTensorDimensionCount + uint64_t maxTensorElements + uint64_t maxPerDimensionTensorElements + int64_t maxTensorStride + uint64_t maxTensorSize + uint32_t maxTensorShaderAccessArrayLength + uint32_t maxTensorShaderAccessSize + uint32_t maxDescriptorSetStorageTensors + uint32_t maxPerStageDescriptorSetStorageTensors + uint32_t maxDescriptorSetUpdateAfterBindStorageTensors + uint32_t maxPerStageDescriptorUpdateAfterBindStorageTensors + VkBool32 shaderStorageTensorArrayNonUniformIndexingNative + VkShaderStageFlags shaderTensorSupportedStages + + + VkStructureType sType + const void* pNext + VkPipelineStageFlags2 srcStageMask + VkAccessFlags2 srcAccessMask + VkPipelineStageFlags2 dstStageMask + VkAccessFlags2 dstAccessMask + uint32_t srcQueueFamilyIndex + uint32_t dstQueueFamilyIndex + VkTensorARM tensor + + + VkStructureType sType + const void* pNext + uint32_t tensorMemoryBarrierCount + const VkTensorMemoryBarrierARM* pTensorMemoryBarriers + + + VkStructureType sType + void* pNext + VkBool32 tensorNonPacked + VkBool32 shaderTensorAccess + VkBool32 shaderStorageTensorArrayDynamicIndexing + VkBool32 shaderStorageTensorArrayNonUniformIndexing + VkBool32 descriptorBindingStorageTensorUpdateAfterBind + VkBool32 tensors + + + VkStructureType sType + const void* pNext + const VkTensorCreateInfoARM* pCreateInfo + + + VkStructureType sType + const void* pNext + VkTensorARM srcTensor + VkTensorARM dstTensor + uint32_t regionCount + const VkTensorCopyARM* pRegions + + + VkStructureType sType + const void* pNext + uint32_t dimensionCount + const uint64_t*pSrcOffset + const uint64_t*pDstOffset + const uint64_t*pExtent + + + VkStructureType sType + const void* pNext + VkTensorARM tensorTensor that this allocation will be bound to + + + VkStructureType sType + const void* pNext + size_t tensorCaptureReplayDescriptorDataSize + size_t tensorViewCaptureReplayDescriptorDataSize + size_t tensorDescriptorSize + + + VkStructureType sType + void* pNext + VkBool32 descriptorBufferTensorDescriptors + + + VkStructureType sType + const void* pNext + VkTensorARM tensor + + + VkStructureType sType + const void* pNext + VkTensorViewARM tensorView + + + VkStructureType sType + const void* pNext + VkTensorViewARM tensorView + + + VkStructureType sType + const void* pNext + uint32_t tensorCount + const VkTensorARM* pTensors + + + VkStructureType sType + const void* pNext + VkTensorCreateFlagsARM flags + const VkTensorDescriptionARM* pDescription + VkExternalMemoryHandleTypeFlagBits handleType + + + VkStructureType sType + const void* pNext + VkExternalMemoryProperties externalMemoryProperties + + + VkStructureType sType + const void* pNext + VkExternalMemoryHandleTypeFlags handleTypes + + + VkStructureType sType + void* pNext + VkBool32 shaderFloat8 + VkBool32 shaderFloat8CooperativeMatrix + @@ -10329,6 +10605,7 @@ typedef void* MTLSharedEvent_id; + @@ -11685,6 +11962,8 @@ typedef void* MTLSharedEvent_id; + + @@ -12098,7 +12377,8 @@ typedef void* MTLSharedEvent_id; - + + @@ -12501,6 +12781,26 @@ typedef void* MTLSharedEvent_id; + + + + + + + + + + + + + + + + + + + + @@ -12912,7 +13212,7 @@ typedef void* MTLSharedEvent_id; VkImageView imageView const VkAllocationCallbacks* pAllocator - + VkResult vkCreateShaderModule VkDevice device const VkShaderModuleCreateInfo* pCreateInfo @@ -12925,14 +13225,14 @@ typedef void* MTLSharedEvent_id; VkShaderModule shaderModule const VkAllocationCallbacks* pAllocator - + VkResult vkCreatePipelineCache VkDevice device const VkPipelineCacheCreateInfo* pCreateInfo const VkAllocationCallbacks* pAllocator VkPipelineCache* pPipelineCache - + VkResult vkCreatePipelineCache VkDevice device const VkPipelineCacheCreateInfo* pCreateInfo @@ -12959,7 +13259,7 @@ typedef void* MTLSharedEvent_id; uint32_t srcCacheCount const VkPipelineCache* pSrcCaches - + VkResult vkCreatePipelineBinariesKHR VkDevice device const VkPipelineBinaryCreateInfoKHR* pCreateInfo @@ -12992,7 +13292,7 @@ typedef void* MTLSharedEvent_id; const VkReleaseCapturedPipelineDataInfoKHR* pInfo const VkAllocationCallbacks* pAllocator - + VkResult vkCreateGraphicsPipelines VkDevice device VkPipelineCache pipelineCache @@ -13001,7 +13301,7 @@ typedef void* MTLSharedEvent_id; const VkAllocationCallbacks* pAllocator VkPipeline* pPipelines - + VkResult vkCreateGraphicsPipelines VkDevice device VkPipelineCache pipelineCache @@ -13010,7 +13310,7 @@ typedef void* MTLSharedEvent_id; const VkAllocationCallbacks* pAllocator VkPipeline* pPipelines - + VkResult vkCreateComputePipelines VkDevice device VkPipelineCache pipelineCache @@ -13019,7 +13319,7 @@ typedef void* MTLSharedEvent_id; const VkAllocationCallbacks* pAllocator VkPipeline* pPipelines - + VkResult vkCreateComputePipelines VkDevice device VkPipelineCache pipelineCache @@ -13040,7 +13340,7 @@ typedef void* MTLSharedEvent_id; VkPipeline pipeline const VkAllocationCallbacks* pAllocator - + VkResult vkCreatePipelineLayout VkDevice device const VkPipelineLayoutCreateInfo* pCreateInfo @@ -13066,7 +13366,7 @@ typedef void* MTLSharedEvent_id; VkSampler sampler const VkAllocationCallbacks* pAllocator - + VkResult vkCreateDescriptorSetLayout VkDevice device const VkDescriptorSetLayoutCreateInfo* pCreateInfo @@ -13135,7 +13435,7 @@ typedef void* MTLSharedEvent_id; VkFramebuffer framebuffer const VkAllocationCallbacks* pAllocator - + VkResult vkCreateRenderPass VkDevice device const VkRenderPassCreateInfo* pCreateInfo @@ -14798,7 +15098,7 @@ typedef void* MTLSharedEvent_id; VkDeviceSize dstOffset uint32_t marker - + VkResult vkCreateRenderPass2 VkDevice device const VkRenderPassCreateInfo2* pCreateInfo @@ -15204,7 +15504,7 @@ typedef void* MTLSharedEvent_id; size_t dataSize void* pData - + VkResult vkCreateRayTracingPipelinesNV VkDevice device VkPipelineCache pipelineCache @@ -15213,7 +15513,7 @@ typedef void* MTLSharedEvent_id; const VkAllocationCallbacks* pAllocator VkPipeline* pPipelines - + VkResult vkCreateRayTracingPipelinesNV VkDevice device VkPipelineCache pipelineCache @@ -15222,7 +15522,7 @@ typedef void* MTLSharedEvent_id; const VkAllocationCallbacks* pAllocator VkPipeline* pPipelines - + VkResult vkCreateRayTracingPipelinesKHR VkDevice device VkDeferredOperationKHR deferredOperation @@ -15232,7 +15532,7 @@ typedef void* MTLSharedEvent_id; const VkAllocationCallbacks* pAllocator VkPipeline* pPipelines - + VkResult vkCreateRayTracingPipelinesKHR VkDevice device VkDeferredOperationKHR deferredOperation @@ -16302,6 +16602,12 @@ typedef void* MTLSharedEvent_id; uint32_t connectorId VkDisplayKHR* display + + VkResult vkWaitForPresent2KHR + VkDevice device + VkSwapchainKHR swapchain + const VkPresentWait2InfoKHR* pPresentWait2Info + VkResult vkWaitForPresentKHR VkDevice device @@ -16619,7 +16925,7 @@ typedef void* MTLSharedEvent_id; const VkMemoryUnmapInfo* pMemoryUnmapInfo - + VkResult vkCreateShadersEXT VkDevice device uint32_t createInfoCount @@ -16672,7 +16978,7 @@ typedef void* MTLSharedEvent_id; const VkPipelineShaderStageNodeCreateInfoAMDX* pNodeInfo uint32_t* pNodeIndex - + VkResult vkCreateExecutionGraphPipelinesAMDX VkDevice device VkPipelineCache pipelineCache @@ -16860,6 +17166,73 @@ typedef void* MTLSharedEvent_id; VkExternalComputeQueueDataParamsNV* params void* pData + + VkResult vkCreateTensorARM + VkDevice device + const VkTensorCreateInfoARM* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkTensorARM* pTensor + + + void vkDestroyTensorARM + VkDevice device + VkTensorARM tensor + const VkAllocationCallbacks* pAllocator + + + VkResult vkCreateTensorViewARM + VkDevice device + const VkTensorViewCreateInfoARM* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkTensorViewARM* pView + + + void vkDestroyTensorViewARM + VkDevice device + VkTensorViewARM tensorView + const VkAllocationCallbacks* pAllocator + + + void vkGetTensorMemoryRequirementsARM + VkDevice device + const VkTensorMemoryRequirementsInfoARM* pInfo + VkMemoryRequirements2* pMemoryRequirements + + + VkResult vkBindTensorMemoryARM + VkDevice device + uint32_t bindInfoCount + const VkBindTensorMemoryInfoARM* pBindInfos + + + void vkGetDeviceTensorMemoryRequirementsARM + VkDevice device + const VkDeviceTensorMemoryRequirementsARM* pInfo + VkMemoryRequirements2* pMemoryRequirements + + + void vkCmdCopyTensorARM + VkCommandBuffer commandBuffer + const VkCopyTensorInfoARM* pCopyTensorInfo + + + VkResult vkGetTensorOpaqueCaptureDescriptorDataARM + VkDevice device + const VkTensorCaptureDescriptorDataInfoARM* pInfo + void* pData + + + VkResult vkGetTensorViewOpaqueCaptureDescriptorDataARM + VkDevice device + const VkTensorViewCaptureDescriptorDataInfoARM* pInfo + void* pData + + + void vkGetPhysicalDeviceExternalTensorPropertiesARM + VkPhysicalDevice physicalDevice + const VkPhysicalDeviceExternalTensorInfoARM* pExternalTensorInfo + VkExternalTensorPropertiesARM* pExternalTensorProperties + @@ -17089,7 +17462,8 @@ typedef void* MTLSharedEvent_id; - + + @@ -17437,7 +17811,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19646,7 +20020,8 @@ typedef void* MTLSharedEvent_id; - + + @@ -22784,7 +23159,8 @@ typedef void* MTLSharedEvent_id; - + + @@ -24671,11 +25047,16 @@ typedef void* MTLSharedEvent_id; - - - - - + + + + + + + + + + @@ -24723,7 +25104,8 @@ typedef void* MTLSharedEvent_id; - + + @@ -25433,13 +25815,93 @@ typedef void* MTLSharedEvent_id; - + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -25573,7 +26035,8 @@ typedef void* MTLSharedEvent_id; - + + @@ -25785,16 +26248,33 @@ typedef void* MTLSharedEvent_id; - + - - + + + + + + + + + + - + - - + + + + + + + + + + + @@ -25802,7 +26282,8 @@ typedef void* MTLSharedEvent_id; - + + @@ -26218,7 +26699,7 @@ typedef void* MTLSharedEvent_id; - + @@ -26371,10 +26852,21 @@ typedef void* MTLSharedEvent_id; - + - - + + + + + + + + + + + + + @@ -26501,10 +26993,17 @@ typedef void* MTLSharedEvent_id; - + - - + + + + + + + + + @@ -26941,10 +27440,17 @@ typedef void* MTLSharedEvent_id; - + - - + + + + + + + + + @@ -27213,12 +27719,22 @@ typedef void* MTLSharedEvent_id; - + - - - + + + + + + + + + + + + + @@ -27411,7 +27927,7 @@ typedef void* MTLSharedEvent_id; - + @@ -27505,7 +28021,7 @@ typedef void* MTLSharedEvent_id; - + @@ -27605,6 +28121,19 @@ typedef void* MTLSharedEvent_id; + + + + + + + + + + + + + @@ -29054,6 +29583,9 @@ typedef void* MTLSharedEvent_id; + + + @@ -29354,6 +29886,12 @@ typedef void* MTLSharedEvent_id; + + + + + + @@ -29917,6 +30455,21 @@ typedef void* MTLSharedEvent_id; + + + + + + + + + + + + + + + @@ -30313,6 +30866,17 @@ typedef void* MTLSharedEvent_id; + + + + + + + + + + + diff --git a/registry/vkconventions.py b/registry/vkconventions.py index 4db9971..ccde698 100755 --- a/registry/vkconventions.py +++ b/registry/vkconventions.py @@ -29,6 +29,7 @@ SPECIAL_WORDS = set(( 'D3D12', # VkD3D12FenceSubmitInfoKHR 'Float16', # VkPhysicalDeviceShaderFloat16Int8FeaturesKHR 'Bfloat16', # VkPhysicalDeviceShaderBfloat16FeaturesKHR + 'Float8', # VkPhysicalDeviceShaderFloat8FeaturesEXT 'ImagePipe', # VkImagePipeSurfaceCreateInfoFUCHSIA 'Int64', # VkPhysicalDeviceShaderAtomicInt64FeaturesKHR 'Int8', # VkPhysicalDeviceShaderFloat16Int8FeaturesKHR @@ -120,6 +121,7 @@ class VulkanConventions(ConventionsBase): # The simple-minded rules need modification for some structure names subpats = [ [ r'_H_(26[45])_', r'_H\1_' ], + [ r'_VP_9_', r'_VP9_' ], [ r'_AV_1_', r'_AV1_' ], [ r'_VULKAN_([0-9])([0-9])_', r'_VULKAN_\1_\2_' ], [ r'_VULKAN_SC_([0-9])([0-9])_',r'_VULKAN_SC_\1_\2_' ], diff --git a/registry/vulkan_object.py b/registry/vulkan_object.py index 0a16fb3..4ea62c0 100644 --- a/registry/vulkan_object.py +++ b/registry/vulkan_object.py @@ -51,6 +51,13 @@ class Version: nameString: str # ex) "VK_VERSION_1_1" (no marco, so has quotes) nameApi: str # ex) VK_API_VERSION_1_1 +@dataclass +class Deprecate: + """""" + link: (str | None) # Spec URL Anchor - ex) deprecation-dynamicrendering + version: (Version | None) + extensions: list[str] + @dataclass class Handle: """ which represents a dispatch handle""" @@ -163,6 +170,8 @@ class Command: implicitExternSyncParams: list[str] + deprecate: (Deprecate | None) + # C prototype string - ex: # VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance( # const VkInstanceCreateInfo* pCreateInfo,